antimorph-ecommerce's Issues
Customer - Register
Story
As a customer, I Want to register in the system.
Customer Data
- FirstName
- LastName
- Is Suspend (default active)
- Phone Number (optional)
- Password
- Last Login
- TimeStamps
API
Method: POST
Endpoint api/customer/register
Request: All Data in Customer Data Section except Last Login
and Is Suspended
Response: Successful message
AC:
- Customer password must be at least 8 character and contains upprtcase, lowercase, number
- Customer Model
Checklist
- API Doc
- Test
Admin - Delete Customer
Story
As an admin, I Want to delete a customer
API
Method: DELETE
Endpoint api/admin/customer/{id}
Auth: admin
Response:
- Successful Message
Checklist
- API Doc
- Test
Admin - Customer List
Story
As an admin, I want to get customer list
API
Method: GET
Endpoint api/admin/customers
Auth: admin
Request: page
, limit
Response:
- Paginator with customer model data without password
Checklist
- API Doc
- Test
Admin - Create Customer
Story
As an admin, I Want to create a customer
API
Method: POST
Endpoint api/admin/customer
Auth: admin
Request: FirstName
, LastName
, Email
,Is Suspend (optional - default active)
, Phone Number (optional)
, Password
Response:
- customer model except password field
Checklist
- API Doc
- Test
Image Gallery Model
Story
The system must have a model for future image relations like category, product, and maybe customers, ...
Imageable Data
PolyMorphic Images!
AC
- model-based relation
- image path
- type
Checklist
- Test
Cart Model
Story
The system must have a model for Cart and CartItem
Cart Data
- id
- customer email
- customer firstname
- customer lastname
- customer id
- shipping method
- items_count
- item_qty
- grand total
- subtotal
- shipping cost
- discount amount
- is active
- timestamps
Cart Items Data
- id
- qty
- name
- price
- cart id
- product id
- timestamps
Checklist
- Test
Admins - Base
Story
As System Admin - I want to create an Admin user with the artisan command
Admin Data
- FirstName
- LastName
- Status (default is 1)
- Phone Number (optional)
- Password
- Last Login
- TimeStamps
Command
Params: Email and password (optional)
AC:
- If password is not provided, Create a random password and show it to the user
Checklist
Category Model
Story
The system must have a model for Categories
Category Data
- id
- name
- slug
- position (category order)
- image_relation (find a way to make a relation between this category and imageable)
- parent_id
- status (default enable)
- meta title (optional)
- meta description (optional)
- meta keywords (optional)
- timestamps
AC
- For images find a way to use the image gallery(#16)
Checklist
- Test
Admin - Login
Story
As an admin, I Want to login into the system.
API
Method: POST
Endpoint api/admin/login
Request: Email
, Password
Response:
- bearer token
- expires_at
AC:
- Using sanctum as the authentication package ( with a different guard)
- Last Login changes
- If provided email or password is wrong show a general message and don't expose which one is wrong!
Checklist
- API Doc
- Test
Create Category
Story
As an admin, I Want to create a category
API
Method: POST
Endpoint api/admin/category
Auth: admin
Request Data:
- id
- name
- slug
- position (category order)
- image
- parent_id
- status (default enable)
- meta title (optional)
- meta description (optional)
- meta keywords (optional)
Response:
- Category Model
AC
- If slug is not provided, it must be generated automatically
- Image must be stored at
public\images\categories
Checklist
- API Doc
- Test
Add sku to product model
Task
Each product in the system must have a unique stock-keeping unit (SKU)
AC
- SKU must be unique
- by default SKU can be generated from the product name
Customer - Logout
Story
As a customer, I Want to logout from the system,
API
Method: GET
Endpoint api/customer/logout
Auth: customer
Request: empty
Response: Successful message
AC:
- Token must be useless if we use it in another guarded request.
- Other customer tokens must be there and just the requested one gets revoked
Checklist
- API Doc
- Test
Customer - Login
Story
As a customer, I Want to login into the system.
API
Method: POST
Endpoint: api/customer/login
Request: Email
, Password
Response:
- bearer token
- expires_at
AC:
- Using sanctum as the authentication package
- Last Login changes
- If provided email or password is wrong show a general message and don't expose which one is wrong!
Checklist
- API Doc
- Test
Create Product
Story
As an admin, I Want to create a product
API
Method: POST
Endpoint api/admin/product
Auth: admin
Request Data:
- name
- slug
- short description
- description
- images
- categories
- status (default enable)
- meta title (optional)
- meta description (optional)
- meta keywords (optional)
- price
- sale price(optional)
- sale start(optional)
- sale end(optional)
Response:
- Product Model
AC
- If slug is not provided, it must be generated automatically
- Image must be stored at
public\images\products
Checklist
- API Doc
- Test
Product Model
Story
The system must have a model for Product
Product Data
- id
- name
- slug
- short_description
- description
- position (product order) (optional)
- image_relation (find a way to make a relation between this product and imageable)
- category_relation
- status (default enable)
- meta title (optional)
- meta description (optional)
- meta keywords (optional)
- price
- sale price(optional)
- sale start(optional)
- sale end(optional)
- timestamps
AC
- For images find a way to use the image gallery(#16)
- Products can have multiple categories!
Checklist
- Test
Test
Admin - Edit Customer
Story
As an admin, I Want to edit a customer
API
Method: PUT
Endpoint api/admin/customer/{id}
Auth: admin
Request: FirstName
, LastName
, Email
,Is Suspend (optional - default active)
, Phone Number (optional)
, Password
Response:
- customer model except for password
field
Checklist
- API Doc
- Test
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.