Skip to main content

Code Organization

This page explains how the project is structured.

Basic Architecture#

basic architecture

Main Components:

  • Data Model: This contains all database models, which are implemented using SQLAlchemy Model abstraction, e.g.: UserModel, MentorshipRelationModel.
  • Data Access Object (DAO): These classes contain functions used by the API resources and use Database Models.
  • API Resources: This is responsible for the REST API available form the deployed server. These resources define the namespaces, i.e., resources HTTP methods. It's also responsible for Swagger documentation.

Root project structure#

Folders and filesDescription
.githubContains files related to GitHub (e.g.: pull request and issue templates, contributing guidelines, ...)
appContains most of the development code
docsContains non-production code (e.g.: Swagger and Postman template to test API)
templatesContains html templates used by the app (e.g.: verification email template)
testsContains all unit tests
config.pyHas the different set of configurations the app can run with
run.pyMain entry point of the app
requirements.txtDescribes all dependencies of the app