Eduquant Coaching Review

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Eduquant-Coaching Review

Date: 2023-05-18
Author: Dragan Radović

DATABASE – PostgreSQL
Pros
1) Prisma ORM – fast, safe and easy to use framework with high-quality fluent methods.
2) Very good and understandable database model design.
3) Uniform table and column names.

Cons
1) File handling use different table for every file type (DropboxFile, StudentTeacherFile,
DataCollectionFile etc) instead of one table for every file type with extra column for
recognizing. Also, every file on disk should be renamed because of security, with storing
original name in db file table for downloading with original file name.
2) Strong relations with base platforms (dropbox, zoom etc) with harder way for replacing or
adding new platforms in the future.

BACKEND - NodeJS
Pros
1) JWT encryption and safe signup / login methods.
2) Safe role checking for user actions.
3) Understandable and uniform organization of project folders and files.

Cons
1) One salt for hashing all passwords instead of random salt for every password.
2) Very bad user role system with hard coded roles (admin, teacher, student) instead of
defining list of permissions for every user types (creating lesson, updating lesson, adding
new users etc). Current system can be difficult for adding new roles or chaning existings –
permissions can't be changed without programming.
3) Service methods are too long and should be refactored.
4) Hard coded values inside services (for example: lesson keys inside payments.service.ts)
CLIENT - VueJS

Pros
1) Simple and understandable project files organization.
2) Good translation service implementation.

Cons
1) A lot of hard-coded labels and messages on German and English.
2) Hard coded values inside Vue scripts (like payment statuses).
3) Hard coded resources (like avatar URLs).
4) Lot of dirty code (scripts and html).

CONCLUSION
Firstly, backend and frontend should be refactored (hard coded values, long methods, dirty code
etc). Secondly, should be implemented 2 new features:
1) Backend: API logging system for user activities,
2) Backend and Client: configurable dashboard charts with generic components for data
showing.
The project is not too big and can continue to be worked on.
Client VueJS app has poor implementations and can require more time to adapt ITM Angular
developers.

You might also like