ACCI Exam System
An integrated system for registering and managing exam registrations and participant certificates, made with Vue and Express.
Published onUpdated on
2.175
Description
This project aims to implement a partial version of the system, where it’s expected to perform in a scenario of an exam-hosting center. Materials for the course of Information System Analysis and Design.
The specifications were included in a few processes, with some in the form of UML diagrams. And finally, the UI design was designed by me in Figma, doubling as an opportunity to learn Prototyping and Components in the program.
| Member | Roles |
|---|---|
| Nguyen Phuc An | Fullstack Developer |
| Nguyen Ha Nam Tran | Frontend Developer |
| Me | Fullstack Developer, Project Manager, Designer |
Tech Stack
- Frontend:
- Technologies: Vite 5.0, Vue 3, Tailwind 4.0, NodeJS 23
- Language: TypeScript
- Deployment: Vercel
- Backend:
- Technologies: ExpressJS with DrizzleORM
- Language: TypeScript
- Deployment: Custom VPS
- Other Tools:
- Diagram Tools: PlantUML
- Databases: PostgreSQL 17.3
Why the selected tech stack?
I selected Vue since it’s one of the frameworks that the other two never had experience with, and since we’re still in school, I consider it a great idea that they get to experience it also, as I know Vue enough to guide them through if they got stuck. TypeScript was forced due to extremely terrible code quality and irresponsible typing of ALL members I ever worked with in school if using the loosely-dynamic typing of JavaScript.
PlantUML was used for almost all of the project’s documentation and diagrams. This was also an opportunity for my friend to learn the tool, as they have experienced how slow manual tools like Lucidchart or DrawIO is compared to having diagrams as code.
Screenshots




Requirements
Functional Requirements
- An individual or an organization may register as an entity to have examinations carried out by ACCI. This translates to either you solo or an English teaching center registers their students for a group IELTS examination.
- The individual or the organization (will refer to as a client) may register an unlimited amount of times.
- A client can put in a list of participants for a certain sitting examination. The employee may create a sitting examination, including the type, the location and the time on the fly (in real life, if they can schedule it) if needed to.
- A participant can participate in multiple examinations regarding a client’s order. A participant may take both the IELTS test and the TOEIC test in the same week, and registered under the same client.
- Each sitting of a participant that pairs with an examination is called an enrollment. This gets what you imagined with candidate ID.
- After an examination, the test scores may be recorded, and a certificate may be issued if the examination warrants it.
Non-functional Requirements
- A fully documented system from the use case of the employees as well as the clients must be provided.
- Regardless of server-rendered app or client-rendered app, all requests must be done asynchronously based on the Sequence Diagram.