Backend Architecture
├── .github/
│ └── ISSUE_TEMPLATE/
├── app/ # Backend
│ ├── config/ # Backend
│ └── settings.py
│ ├── frontend/ # Backend
│ ├── server/ # Backend
│ ├── .babelrc
│ ├── manage.py
│ ├── requirements.txt # Backend
│ ├── package.json
│ ├── package-lock.json
│ └── webpack.config.js
├── dev/
│ ├── django.dockerfile
│ ├── webpack.dockerfile
│ └── dev.env
├── .dockerignore
├── .gitignore
├── jsconfig.json
├── CONTRIBUTING.md
├── docker-compose.yml
├── LICENSE
└── README.md
Overall project structure
├── config/
│ ├── <Django Project Files>
├── frontend/
│ └── <Django App Files>
├── server/
│ ├── <Django App Files>
│ └── <RESTFramework Files>
├── manage.py
└── requirements.txt
Backend Architecture
Summary
Backend Tech Stack: Django, DjangoRESTFramework
The backend architecture is consists the docker/
directory, the Django config/
project, the frontend/
and server/
Django apps, and a couple of Django or Docker-related loose files. In addition to serving as part of our backend, the frontend/
directory also serves our frontend architecture. More about the frontend/
directory as it relates our frontend architecture can be found in our guide on Frontend Architecture.
Overview of Directories and Files
- config/: houses the Django project files.
- <Django Project Files>: More on the files in this directory can be found in Django's documentation.
- <Django App>: currently we have two directories that are Django apps:
frontend/
andserver/
. Within these directories are the default<Django App Files>
that are created with every app as well as<RESTFramework Files>
. - <Django App Files>: These files make up a Django App. To know more about these apps, read the section about Django App Files.
- <RESTFramework Files>: Currently consists of only
serializers.py
, these files are additional files that support Django via the DjangoRestFramework library. - manage.py: Part of Django, this is the entry point file for starting the Django server. This file handles a lot of critical settings, so be sure to read up on it in Django's documentation.
- requirements.txt: A Python file that contains all dependencies for a project. It is the Python equivalent to Javascript's
package.json
.
Django App Files
├── migrations/
│ └── __init__.py
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
├── urls.py
└── views.py
Files generated by Django when creating a new Django app
As of right now, no specific changes have been made to these files, so please refer to Django's documentation for now to learn what they do in a general sense.
Django REST Framework Files
├── serializers.py
RESTFramework files used to create a Django REST API
As of right now, no specific changes have been made to these files, so please refer to DjangoRESTFramework's documentation for now to learn what they do in a general sense.