This app is to enable creating and managing shopping lists. The app is developed using Django Rest Framework (DRF).
- User Registration - User should be able to register with the follwing details:
- First name
- Last name
- Password
-
User login: User can log in with:
- Password
-
Email verification: users receives email notification to confirm registered email.
-
User can perform CRUD operation on the shopping list belonging to them.
- Note: You need to have python3.x installed on you machine.
-
Clone the project into your machine.
git clone https://github.com/Ginohmk/Shopping-list.git
-
Navigate into the project folder.
cd Shopping-list -
Start your virtual environment (mac/linux and windows)
source/bin/activate
Or for windows
\venv\Scripts\activate.bat
-
Install project dependencies.
pip install -r requirements.txt
-
Start server
./manage.py runserver
This are the folders and files relevant to this project.
├── shopping_list # Project file
├── settings.py
├── urls.py
├── shop # Shopping_list app <br>
├── admin.py
├── models.py
├── serializers.py
├── services.py
├── urls.py
├── views.py
├── user # User app
├── admin.py
├── user_authentications.py # Custom authentication
├── models.py
├── user_permissions.py # Custom permision
├── serializers.py
├── services.py
├── urls.py
├── views.py
├── manage.py
├── README.md
├── requirements.txt
-
Registration
/api/users/register/(Post)- Payload
{ "id": "string", "first_name": "string", "last_name": "string", "email ": "string", "password": "string" }- Response 200
{ "id": "string", "first_name": "string", "last_name": "string", "email ": "string" }
-
Login
/api/users/login/(Post)- Payload
{ "email": "string", "password": "string" }- Response 200
-
Logout
/api/users/logout/(Post)-
Payload
None -
Response 200
{ "message": "Logged out Successfully" }
-
-
Me
/api/users/me/(Get)-
Payload
None -
Response 200
{ "id": "string", "first_name": "string", "last_name": "string", "email ": "string" } -
- Email verification
/api/user/verify-email/(Post)
Note: Verification link is sent to user and when clicked they can verify their email
-
Payload
None -
Response 200
- Create shop
/api/shops/(Post)
- Payload
{
"description": "string",
"priority": int,
"title": "string",
"due_date": "string datetime",
"quantity": int,
"is_complete": boolean
}- Response 200
{
"id": "uuid string",
"description": "string",
"priority": int,
"title": "string",
"due_date": "string datetime",
"quantity": int,
"is_complete": boolean
"user": {
"id": "string",
"first_name": "string",
"last_name": "string",
"email": "string"
}
}-
Get All shop
/api/shops/(Get)- Response 200
[ { "id": "uuid string", "description": "string", "priority": int, "title": "string", "due_date": "string datetime", "quantity": int, "is_complete": boolean "user": { "id": "string", "first_name": "string", "last_name": "string", "email": "string" } } ]
-
Delete shop
/api/shops/<id: str>/(Delete)- Response 204
- Response 204
-
Update shop
/api/shops/<id: str>/(Put)
-
Payload
{ "description": "string", "priority": int, "title": "string", "due_date": "string datetime", "quantity": int, "is_complete": boolean } -
Response 200
{
"id": "uuid string",
"description": "string",
"priority": int,
"title": "string",
"due_date": "string datetime",
"quantity": int,
"is_complete": boolean
"user": {
"id": "string",
"first_name": "string",
"last_name": "string",
"email": "string"
}
}- Retreive sinfle shop
/api/shops/<id: str>/(Get)
- Response 200
{
"id": "uuid string",
"description": "string",
"priority": int,
"title": "string",
"due_date": "string datetime",
"quantity": int,
"is_complete": boolean
"user": {
"id": "string",
"first_name": "string",
"last_name": "string",
"email": "string"
}
}### Author
👤 Kanu Mike
- GitHub: @Ginohmk
- Twitter: @michotall95
- LinkedIn: @kanumike
- Instagram: @savy_kanu_mike
- Facebook: @mike.kanu
👤 Evan Guma
- GitHub: @ayera-4
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page
Give a ⭐️ if you like this project!
This project is MIT licensed.