INOCULYST

February 2025 - April 2025

MySQL, React, Node.js, TypeScript, JavaScript, HTML, CSS

Inoculyst is a full-stack vaccine management website created for a single pharmacy. It was created for the course CPSC 471 (Data Base Management System) in a 3-person team. To see individual contributions, please refer to the GitHub repository.

My role primarily focused on both backend engineering and system architecture, where I:

  • Collaborated on UI/UX design in Figma to ensure a clean and intuitive user experience.
  • Created a technical plan for the frontend architecture and set up the initial React + TypeScript environment.
  • Used Git for version control and effective collaboration throughout development.
  • Architected the relational database schema and created ER diagrams to optimize query performance and enforce data integrity in the MySQL backend.
  • Developed backend functionality using MySQL, Node.js, Express.js, and JavaScript, implementing modular routes and controllers to ensure clean API structure and maintainable code.
  • Assisted in integrating the backend seamlessly with a React + TypeScript frontend, enabling smooth data interaction and user operations.

VIDEOS & DESCRIPTIONS

The following section includes screen-recordings and descriptions showcasing the experience of each of the four end-user roles in the final product. Owners and pharmacists are admins; technicians and assistants are employees.

User #1: OWNER

The owner has full access to the system. In "Inventory", they can manage batches—add, view, update, return, or delete them. In "Pending Requests", they can accept or reject technician requests, with accepted requests auto-updating batches. "Vaccine Groups" shows vaccine types available for new batches. "Returns" lists returned batches and their distributors. "Distributor Details" displays distributor information. In "Configure Accounts", the owner can update user info and promote assistants to technicians; other role changes must go through the database provider.

User #2: PHARMACIST

The pharmacist has access to most features in the system. They have all the features that the owner has except for "Configure Accounts".

User #3: TECHNICIAN

The technician has less access to the system than the pharmacist. They cannot view returns or distributor details. They may also not add, delete, update, or return batches. Technicians are only allowed to request to update a batch's quantity, which must be approved by an admin before making an actual change to the batch. In "Pending Requests", they can delete accepted or deleted batches, so that they can make further requests to update the batch if necessary. A batch can only have one update request at a time.

User #4: ASSISTANT

Assistants have only view-access to the system. They can view the inventory, but are not allowed to modify or request modifications to the inventory.

All users have access to the "Dashboard" and "Account Settings". The Dashboard displays inventory analytics, including total batches and those expiring or expired. In Account Settings, users can view and update their username and password.

Currently, there is no option to sign up for an account. If a new user is needed, the owner must request one from Inoculyst, the database provider. In a future version, we would add functionality for owners to create and manage user accounts directly.

If you have any questions about the application, feel free to contact me!