This API simulates a home delivery platform that allows users to search for and purchase products from local restaurants near their homes, place orders, and schedule deliveries. Similarly, restaurants can manage their menus, receive orders, and handle their meals through the platform. The API is inspired by platforms like Rappi, Uber Eats, PedidosYa, and Glovo.
Clone the repository.
git clone git@github.com:tyronejosee/project_drop_dash_api.git
Create a virtual environment (Optional).
python -m venv env
Activate the virtual environment (Optional).
env\Scripts\activate
Install all dependencies.
pip install -r requirements/local.txt
Create an environment variable file .env.
SECRET_KEY=""
EMAIL_BACKEND=""
EMAIL_HOST=""
EMAIL_HOST_USER=""
EMAIL_HOST_PASSWORD=""
EMAIL_PORT=""
EMAIL_USE_TLS=""
Docker run.
(env) docker compose -f docker-compose.dev.yml up
(env) docker compose -f docker-compose.dev.yml up --build
(env) docker compose -f docker-compose.dev.yml stop
(env) docker compose -f docker-compose.dev.yml logs -f
(env) docker compose -f docker-compose.dev.yml start
(env) docker compose -f docker-compose.dev.yml restart <service>
Perform database migrations.
(env) docker compose -f docker-compose.dev.yml exec web bash
(env) docker compose -f docker-compose.dev.yml exec web python manage.py makemigrations*
(env) docker compose -f docker-compose.dev.yml exec web python manage.py migrate
(env) docker compose -f docker-compose.dev.yml exec web python manage.py migrate <app_label> <migration_name>
(env) docker compose -f docker-compose.dev.yml exec web python manage.py showmigrations
Note: Create the migrations in case Django skips any.
Create a superuser to access the entire site without restrictions.
(env) docker compose -f docker-compose.dev.yml exec web python manage.py createsuperuser
Log in to admin
:
http://127.0.0.1:8000/admin/
Access to Swagger o Redoc.
http://127.0.0.1:8000/api/schema/swagger/
http://127.0.0.1:8000/api/schema/redoc/
Check the creation of migrations before creating them.
(env) docker compose -f docker-compose.dev.yml exec web bash
(env) docker compose -f docker-compose.dev.yml exec web python manage.py makemigrations users
(env) docker compose -f docker-compose.dev.yml exec web python manage.py makemigrations
(env) docker compose -f docker-compose.dev.yml exec web python manage.py migrate
Note: Checking migrations before their creation is necessary to avoid inconsistencies in user models.
(env) docker compose -f docker-compose.dev.yml exec web python manage.py dumpdata > backup.json
(env) docker compose -f docker-compose.dev.yml exec web python manage.py loaddata
(env) docker compose -f docker-compose.dev.yml exec db psql -U postgres -d fandomhub_db
(dropdash_db=#) \dt
(dropdash_db=#) \d <table>
(env) docker compose exec redis redis-cli
(127.0.0.1:6379) keys *
This project is under the Apache-2.0 license.