Skip to content

Onboarding

tye101 edited this page Dec 6, 2024 · 15 revisions

Last updated 06/12/2024

Architecture Overview

The basic system consists of 3 main components as demonstrated by the diagram above. A web front-end written in React, an API written in Python using the flask library, and a no-SQL database using mongoDB image

Front-end Architecture

The front-end is located in the ./client directory.

API architecture

The api is located in the ./server directory. The path ./server/app stores most of the code for the api, and is broken into three categories of file: entities, models, and controllers, the functions of which are demonstrated below. image

Database

Database architecture is represented by the following diagram.

Database is always stored on the local machine. In a development context, this means on the developer's machine, while in a production context, it is the virtual machine running off of a server. There is currently no way to transfer database data between machines through the app.

The database refers to Azure Entra ID (previously Active Directory) INSERT LINK for login authentication in all contexts. This means that erasing the user table may cause problems for developers as it will lock them out. This can be circumvented using API calls to add users directly INSERT INSTRUCTIONS. the user table is linked to Entra ID by email address.

Development

Prerequisites

Make sure to have these technologies installed in your system

1. Docker
2. NodeJs
3. Python

Server Installation

Server Guide

Run Guide

git clone https://github.com/umple/AcademicTeamManagement.git
cp .env.template .env

In .env, add credentials to:

MONGODB_INITDB_ROOT_USERNAME=
MONGODB_INITDB_ROOT_PASSWORD=

PRIVATE_KEY=

Run commands

Locally

For local development, try to build each service individually

# Build the database first
$ ./gradlew startMongo

# Build the server, make sure to add the password of the DB in the ./scripts/runBackendTests.sh file
$ ./gradlew runBackendLocally

# Build the frontend
$ ./gradlew runFrontendLocally

*Ensure the docker service is running using systemctl start docker.service.

The respective run scripts are written in bash and can be found in ./scripts.

Production

For prod development, build using all the services using docker-compose

# To start the app
$ ./gradlew composeUp

# To stop the app
$ ./gradlew composeDown

Deployment

See DevOps section for more information

Testing

Refer to the testing guide.

Documentation and Resources

System Information and Architecture

Project Information from Client

DEVELOPMENT

Follow links for local development and helpful information.

Onboarding Material MUST READ!!! Essential information to get started with the project.

React App How to get started with web application project using Create React App.

Running Server

Testing Guide

Devops

Devops Release

ARCHIVE

Historical documents, do not need to read.

Documentation from 2024 Academic Management Team group.

Project Management

Wiki Home 2024

Meetings Info

First Semester Summary 2024

Second Semester Summary 2024

Documentation from 2023 Academic Management Team group.

Design

Devops

RELEASE

General

How to Create a Class List

Progress

Meetings

Updates

Project Management

Deliverables

Deliverable 1

Andre Pitch (Downloadable PDF)

Caroline Pitch (Downloadable PDF)

Laith Pitch (Downloadable PDF)

Deliverable 2

Changelog

The Bet - Meeting Minutes

Winning Pitch

Deliverable 3

Hill Charts

Scope Maps

Weekly Meetings

Clone this wiki locally