Django Easystart’s code structure
{{ project_name }}/
├── Dockerfile.heroku
├── README.md
├── apps
│ ├── accounts
│ ├── audit
│ ├── core
│ ├── management
│ ├── two_factor_auth
│ └── wallet
├── compose
│ ├── .env
│ ├── cypress
│ ├── django
│ └── nginx
├── docker-compose.prod.yml
├── docker-compose.yml
├── easystart
│ ├── __init__.py
│ ├── asgi.py
│ ├── celery.py
│ ├── settings.py
│ ├── test_settings.py
│ ├── urls.py
│ └── wsgi.py
├── fixtures
├── frontend
│ └── src
│ ├── Components
│ ├── Pages
│ ├── index.js
│ └── utils
├── heroku-deployment.sh
├── heroku.yml
├── package.json
├── permissions.yml
├── scripts
├── static
│ ├── css
│ ├── dist
│ ├── img
│ └── js
├── tailwind.config.js
├── templates
├── webpack.config.dev.js
└── webpack.config.js
Easystart was designed with an intuitive and straightforward structure, allowing for easy scalability as the project evolves. Each directory and file has been thoughtfully organized to help developers navigate the codebase with ease. By adhering to a structured approach, Easystart can accommodate the needs of growing projects and maintain code integrity. We have taken great care to ensure that the project is well-organized, easy to use, and adaptable to changing requirements. This documentation will provide an overview of the different directories and files, so developers can quickly find what they need and continue building upon the existing codebase. Below is a description of each directory and file:
- Main directory: In the root directory, the entire project structure, such as subdirectories and configuration files.
Dockerfile.heroku: this Dockerfile is used to build an image of the project that can be deployed on Heroku.
README.md: this file contains instructions for starting and running the application.
docker-compose.prod.yml: Docker compose for creating the image for production.
docker-compose.yml: Docker compose for creating the image for development.
heroku.yml: this is the manifest file used by Heroku to build the application on its platform. This file instantiates the
Dockerfile.heroku
, which is used to build the image and deploy it.heroku-deployment.sh: Used to tell Heroku which commands to execute once the application has been successfully deployed.
package.json: Contains descriptive and functional metadata about the project, such as the name, version, and dependencies.
permissions.yml: List of permissions that are preloaded into the Permissions model. This is necessary for the Groups and Permissions feature.
tailwind.config.js: Configuration of the Tailwind CSS framework. See the Tailwind Tailwind section.
webpack.config.dev.js: Configuration for generating the application build in development mode.
webpack.config.js: Configuration for generating the application build for production.
- apps: Directory where the app modules are located.
accounts: Account module where authentication, password reset, and captcha functionalities are located. See apps/accounts.html.
audit: Module for auditing user events. This app allows logs of user interaction with models and visited URLs to be recorded, as well as registering custom events. See more apps/audit.html.
core: The core app contains the central functionalities of the application, such as global settings, user information, among others. See apps/core.html.
management: Module developed for administrator users. Contains functions to adjust application behavior. See apps/management.html.
two_factor_auth: This app adds the two-step verification security functionality using the OTP method. See apps/two_factor_auth.html.
- compose: Directory with information for building the application in development and production modes.
.env: Folder with the dev-sample and prod-sample files with the necessary environment variable information for building the application.
cypress: Contains the Dockerfile for setting up the e2e testing environment.
django: Contains Dockerfiles and commands to be executed for building the application image in both development and production.
nginx: Here you will find the Dockerfile for the nginx web server image.
easystart: Main directory with the application settings.
fixtures: Files with initial values to be preloaded when the application is first started. See apps/system/fixtures.html.
frontend: Directory with the application frontend. We have dedicated an entire section to this module, to learn more go to The Frontend <the-frontend.html>_.
scripts: Here you will find the scripts that should be executed with the runscript command; one of them is the
sync_permissions.py
script.static: Directory with all static files used in the application, such as css, images, js, in addition to the dist folder.
templates: Folder containing the HTML files used in the application.