Porto Shopping Mall API
Porto Shopping Mall API is an eCommerce store API that allows different software applications to communicate and interact with their platform. This API enables the exchange of data and functionality (such as product, inventory, cart, and customer management, order processing, etc) between their store and other systems, such as mobile apps, third-party software, payment gateways, and more.
API Features
User Authentication
- Register user
- Login user
- Change password
- Password reset request
- Password reset confirmation
- Refresh token
- Logout user
User Profile
- Current user profile
- Update user profile
Product
- Create product
- Upload product image
- Delete product
- Update product
- List all products
- Get single product
- Search products
- Filter products
Order
- Create order
- Get all orders
- Get single order
- Delete order
- Make payment
- Process order
Review
- Create product review
- Update product review
- Delete product review
Technologies Used
- Django
- Django Rest Framework
- JWT Authentication
- Mailtrap
- Stripe
- Amazon S3
- Postgres
- Github Actions (Continuous Integration/Continuous Deployment)
- Digital Ocean
- DRF-YASG (API Documentation)
- Insomnia
API Documentation
https://porto-shopping-mall-api-g7ogr.ondigitalocean.app/redoc/
Test via Insomnia - https://github.com/johndiginee/Porto_Shopping_Mall_API/blob/master/Insomnia_2023-09-18.json
Installation on local machine
git clone https://github.com/johndiginee/Porto_Shopping_Mall_API.git
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Set DEBUG = True in settings.py
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver
Create a .env file and set:
SECRET_KEY =
DEBUG =
AWS_ACCESS_KEY_ID =
AWS_SECRET_ACCESS_KEY =
AWS_STORAGE_BUCKET_NAME =
AWS_S3_REGION_NAME =
EMAIL_HOST =
EMAIL_HOST_USER =
EMAIL_HOST_PASSWORD =
EMAIL_PORT =
STRIPE_PUBLIC_KEY =
STRIPE_PRIVATE_KEY =
STRIPE_WEBHOOK =
Author
John Diginee - LinkedIn / X / Personal Site
Acknowledgements
Holberton School, ALX Africa (Mentors, Staff and Students) & Mastercard Foundation