Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codewithmike01/shopping-list
https://github.com/codewithmike01/shopping-list
Last synced: 30 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/codewithmike01/shopping-list
- Owner: codewithmike01
- Created: 2023-09-25T15:36:29.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-13T11:13:15.000Z (about 1 year ago)
- Last Synced: 2024-08-20T16:43:31.255Z (3 months ago)
- Language: JavaScript
- Homepage: https://shopping-list-opal.vercel.app
- Size: 15.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API Development and Documentation Collaboration Project
## Shopping List App
This app is to enable creating and managing shopping lists. The app is developed using Django Rest Framework (DRF).
### Features
1. User Registration - User should be able to register with the follwing details:
- First name
- Last name
- Password2. User login: User can log in with:
- Password3. Email verification: users receives email notification to confirm registered email.
4. User can perform CRUD operation on the shopping list belonging to them.
## Starting
##### Prerequisite
- Note: You need to have python3.x [installed](https://www.tutorialspoint.com/how-to-install-python-in-windows) on you machine.
##### Steps
1. Clone the project into your machine.
```cmd
git clone https://github.com/Ginohmk/Shopping-list.git
```2. Navigate into the project folder.
```cmd
cd Shopping-list
```3. Start your virtual environment (mac/linux and windows)
```cmd
source/bin/activate
```Or for windows
```cmd
\venv\Scripts\activate.bat
```4. Install project dependencies.
```cmd
pip install -r requirements.txt
```5. Start server
```
./manage.py runserver
```
### Folder Structure
This are the folders and files relevant to this project.
```
├── shopping_list # Project file
├── settings.py
├── urls.py
├── shop # Shopping_list app
├── 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
```
### Backend APIs ( Live `https://kanumikec.pythonanywhere.com/` )
##### User Apis
1. Registration `/api/users/register/` (Post)
- Payload
```json
{
"id": "string",
"first_name": "string",
"last_name": "string",
"email ": "string",
"password": "string"
}
```- Response 200
```json
{
"id": "string",
"first_name": "string",
"last_name": "string",
"email ": "string"
}
```
2. Login `/api/users/login/` (Post)
- Payload
```json
{
"email": "string",
"password": "string"
}
```- Response 200
3. Logout `/api/users/logout/` (Post)
- Payload `None`
- Response 200
```json
{
"message": "Logged out Successfully"
}
```
4. Me `/api/users/me/` (Get)
- Payload `None`
- Response 200
```json
{
"id": "string",
"first_name": "string",
"last_name": "string",
"email ": "string"
}
```
5. 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
##### Shopping_list Apis
1. Create shop `/api/shops/` (Post)
- Payload
```json
{
"description": "string",
"priority": int,
"title": "string",
"due_date": "string datetime",
"quantity": int,
"is_complete": boolean
}
```- Response 200
```json
{
"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"
}
}
```
2. Get All shop `/api/shops/` (Get)
- Response 200
```json
[
{
"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"
}
}
]
```
3. Delete shop `/api/shops//` (Delete)
- Response 204
4. Update shop `/api/shops//` (Put)
- Payload
```json
{
"description": "string",
"priority": int,
"title": "string",
"due_date": "string datetime",
"quantity": int,
"is_complete": boolean
}
```- Response 200
```json
{
"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"
}
}
```5. Retreive sinfle shop `/api/shops//` (Get)
- Response 200
```json
{
"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](https://github.com/Ginohmk)
- Twitter: [@michotall95](https://www.twitter.com/michotall95)
- LinkedIn: [@kanumike](https://www.linkedin.com/in/mike-kanu-dev/)
- Instagram: [@savy_kanu_mike](https/instagram.com/savy_kanu_mike)
- Facebook: [@mike.kanu](https://www.facebook.com/mike.kanu)👤 **Evan Guma**
- GitHub: [@ayera-4](https://github.com/ayera-4)
### 🤝 Contribute
Contributions, issues, and feature requests are welcome!
Feel free to check the [issues page](https://github.com/Ginohmk/online-note-book-drf/issues)
### Acknowledgement
## Show your support
Give a ⭐️ if you like this project!
## 📝 License
This project is [MIT](./MIT.md) licensed.