Skip to content

Code Organization

Isabel Costa edited this page Jul 18, 2020 · 2 revisions

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 files Description
.github Contains files related to GitHub (e.g.: pull request and issue templates, contributing guidelines, ...)
app Contains most of the development code
docs Contains non-production code (e.g.: Swagger and Postman template to test API)
templates Contains html templates used by the app (e.g.: verification email template)
tests Contains all unit tests
config.py Has the different set of configurations the app can run with
run.py Main entry point of the app
requirements.txt Describes all dependencies of the app