Skip to content

tim-corley/copilot-prototype-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Django-Next.js-Boilerplate!

This is a basic boilerplate starter for a fullstack web project with Django as the server, PostgreSQL as the database and Next.js as the frontend.

GitHub Repo stars

About the template

  • PostgreSQL used as the primary database.
  • Superuser is already initialized with the credentials: Username- admin, Email- admin@admin.com, Password- admin
  • Integration with Django Rest Framework
  • Integrated Djoser for user register/login/logout workflows.
  • Used JWT for Authentication.
  • API Documentation is configured using swagger.
  • Containerized using Docker and managed using docker-compose.
  • A typescripted Next.js client has been preinstalled and integrated with docker-compose.
  • Added Chakra UI and Chakra icons in the frontend as a design and component library alongwith axios for making api calls.

Getting Started

To get a local copy of this template up and running on your machine, follow these simple steps.

Prerequisites

  • Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh

Installation

  • Clone the repo git clone https://github.com/akshat2602/django-nextjs-boilerplate.git
  • Change the current directory to the template cd django-nextjs-boilerplate
  • Add a .env.dev file at project root & create/add following environment variables:
#PostgreSQL Config

DB_ENGINE=django.db.backends.postgresql
POSTGRES_DB=db
POSTGRES_USER=user
POSTGRES_PASSWORD=password
DB_HOST=db
DB_PORT=5432

#Django Config Variables

PYTHONUNBUFFERED=True
DJANGO_DEBUG=True

DJANGO_SUPERUSER_USERNAME=admin
DJANGO_SUPERUSER_EMAIL=admin@admin.com
DJANGO_SUPERUSER_PASSWORD=admin
SECRET_KEY=<DJANGO-INSECURE-KEY>
DEFAULT_USER=guest
DEFAULT_PASS=guest

#Production Config
GUNICORN_WORKERS=5

# MAPQUEST DEV | GEO CODER
GEOCODER_API=<MAPQUEST-DELOPER-API-KEY>

# DOCKER-COMPOSE
WAIT_HOSTS=db:5432
  • Build the docker containersdocker-compose -f docker-compose.dev.yml build for the dev containers and docker-compose -f docker-compose.prod.yml build for the prod containers
  • Run the docker containersdocker-compose -f docker-compose.dev.yml up for the dev containers and docker-compose -f docker-compose.prod.yml up for the prod containers

API Documentation

API documentation is done using swagger. Visit /swagger for API documentation.

Technologies used

License

Distributed under the MIT License. See LICENSE for more information.

Dev Notes

Steps to Create / Update Models

  1. Add models to <MY_APP>/models.py
  2. Register the app in server/settings.py
  3. Register model classe to admin in <MY_APP>/admin.py
  4. Launch containers with docker-compose
  5. Access the server container using $ docker exec -it <CONTAINER-ID> bash
  6. Run migrations ($ python manage.py makemigrations & $ python manage.py migrate)
  7. Input test data:
root@1f9482e255eb:/src# python
Python 3.9.12 (main, Mar 29 2022, 14:20:48)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.setup()
>>> from flight.models import Airport, Plane, Duty, Leg, Receipt

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published