Development

Project Settings & Configuration


Folder Structure

This overall folder structure of the project is as follows:

project/
├── .envs   ---> env variables
├── apps    ---> your apps folder
│   ├── audit-logs
│   ├── contrib
│   ├── common
│   ├── dashboard
│   ├── payments
│   ├── teams
│   ├── tenants
│   ├── users
│   └── webhooks
├── config    ---> config module, includes app settings
│   ├── settings 
│       ├── mixins  ---> optional settings
│           ├── project_meta.py
│           ├── ...
│           └── payments.py
│       ├── base.py
│       ├── local.py
│       ├── test.py
│       └── production.py
├── assets ---> JS frontend components & tailwindcss file
│   ├── js. 
│   └── css
├── requirements  ---> app requirements
└── static        ---> static js andcss files
    ├── css
    ├── images
    └── js
├── ops           ---> deployment scrips/docker compose etc.
├── templates     ---> app templates
├── makefile      ---> shortcuts

Config Module & Project Settings

This is the Django project root directory. It’s where the project settings, root urlconf ( urls.py & api_router.py ) asgi.py , wsgi.py are located.

Settings are organised by environment and all inherit from base.py which includes settings that are common across in environments. production.py and test.py include settings for your development and test environments.

The settings module includes the mixins module, which is made up of various configuration files organised by function.

For example settings for stripe and payments can be found in payments.py .

The apps module

This is where you can find the project’s apps.

It is pre-populated with Vanty’s default apps for you to further customize to your needs.

The module starts with the following apps.

  • tenants is where your tenant models and logic is defined.
  • payments is for functionality related to Stripe subscriptions.
  • users is where your user models and views are defined.
  • teams is where team models and views are defined.
  • common logic/models and utilities shared across all app.
  • dashboard admin dashboard for managing the app
  • audit-logs audit logs app

The requirements folder

This is where you define your project’s Python requirements.

Requirements are managed using pip .

The assets folder

Source files for your site’s frontend. Currently includes the tailwindcss styles in css/app.css.

See the section on front-end architecture for more information on how to compile these files or use JS framework.

The static folder

This folder contains your project’s static files, including the compiled output files from the assets folder as well as images.

The templates folder

This folder contains your project’s Django templates.

  • There is one sub-folder for each application that has templates.
  • The dashboard layout template is in templates/layouts
  • Email templates can be found in templates/templated_email
  • Components used across the app can be found in components/tailwind .

See the Django templates section for more info.

Shortcuts

The project includes a makefile for convenience commands you can use during development. This requires that GNU Make is installed on your local machine.

To see a full listing run make help . You will see out like this (this could change).

--------------------------------------------------------------------------------------------------
Welcome to the vanty Makefile docs
Please see below for a list of commands available
If you face any issues you can run the commands manually.
* Windows users
* Non docker setups
Check that all dependencies have been installed on your host or virtual environment.
--------------------------------------------------------------------------------------------------
help:  makefile documentation.
run: run the stack
buildc:  rebuild any container. make build c=container_name
build:  build stack
init:  build stack and run migrations
cq:  code quality
migrate:  create migrations and migrate
collectstatic:  collect static files
verified-superuser:  create verified superusers
run-tasks:  async tasks with huey
tests:  run tests
tests-cov:  run tests with coverage
cov-report:  run coverage report
payments-flow:  graph payments flow
sync-stripe:  sync-stripe models