Repository navigation
Replies: 3 comments 1 reply
A hybrid Three-layered ArchitectureI have structured the Autograder's codebase to be a three-layered architecture with a few domain-driven aspects to it. More specifically, I have used the On the whole, API requests that come in are handled by files in the The The The |
Using our own AuthenticatorI long debated on whether we should use our own authenticator (reinventing the wheel) or use the Google Gmail one. I decided to implement our authenticator as I want this project to be as independent of external factors as far as possible. Using Gmail's authenticator added a layer of reliance on Google Cloud's authenticator service, which adds complexity in setting up and tearing down the project. I will be using a traditional email-password login set up. New Sign upsThe only way a user can gain a login into the grader is by receiving an invitation. The instructor can invite a student by entering their email (does not have to be a Logging inWhenever the user logs in, their credentials will be translated into a JWT token that we return to them. JWT tokens will have an expiry and will help facilitate sessions. They will also aid in authorization. AuthorizationEvery API endpoint will have to authorize users before any action can be performed. We will be implementing Role Based Access Control or RBAC. Additionally, we will only be supporting three roles: Admin, Instructor, and Student. Admin
Instructor
Possible feature in the future: Assistant
Student
|
Front-end with ReachFor the React project structure, I have slightly modified the "Intermediate Folder Structure" from this guide. It does a great job at describing the purpose of each folder. |
Uh oh!
There was an error while loading. Please reload this page.
I think it might be valuable to comment on the decisions that I made in my implementations (as I make them) and how I implemented things so that it's easier for others to fix / debug later on.
All reactions