-
Notifications
You must be signed in to change notification settings - Fork 2
System Architecture
zechajw edited this page Jun 29, 2022
·
4 revisions
The tech stack chosen for this project is the following
| Technology | Role |
|---|---|
| Next.js (React) | Front end framework |
| Express.js | Back end framework |
| Node.js | Runtime environment for back end |
| Postgresql | Relational database |
also known as PERN
- The Skylab Client (Frontend) is written in Next.js, React
- For the initial development period (May to August 2022), the website was hosted on Vercel for development.
- To remove concurrency issues and increase the consistency of our database, we decided to forgo the use of third-party authentication services (e.g. Firebase, Supabase) and store the authentication information directly on the database.
- Passwords are encrypted using BCrypt and authorization is handled using JWT Tokens
- The Skylab Server (Backend) uses the Express.js framework available for Node.js
- The application uses a PostgreSQL databases
- Our application also uses Prisma for Object-Relational Mapping (ORM), which enables faster and easier development without the need to write raw SQL queries.
- Prisma also allows for type-safe code on Typescript.
- SendInBlue
Our application uses the SendInBlue email service to send emails. This includes password reset emails, notifications, and other emails that are sent to users of Skylab.
-
Auth Endpoints
/api/auth -
Users Endpoints
/api/users -
Students Endpoints
/api/students -
Advisers Endpoints
/api/advisers -
Mentors Endpoints
/api/mentors -
Administrators Endpoints
/api/administrators -
Cohorts Endpoints
/api/cohorts -
Deadlines Endpoints
/api/deadlines -
Projects Endpoints
/api/projects -
Dashboard Endpoints
/api/dashboard -
Evaluation Relationships Endpoints
/api/relations -
Submissions Endpoints
/api/submissions -
Announcements Endpoints
/api/announcements -
Application Endpoints
/api/application -
Vote Events Endpoints
/api/vote-events -
AI Endpoints
/api/ai