A web-based information system for managing vehicles, accounts, and customers. On the frontend, React was used with the following libraries: React Query for caching, React Hook Form with validation via Zod, react-pdf for generating PDFs on the frontend, Tailwind CSS for styling, and Shadcn for componentization
For the backend, NestJS is used, with Prisma ORM, Postgres for the database, Zod for validation, and nodemailer for sending emails
A folder with Zod schemas shared between the backend and frontend unifies the validations
GitHub Pages was used for frontend hosting. The backend is on an OCI VM, behind a Load Balancer, which receives the TLS certificate via certbot. The database is also on an OCI VM, with daily backup to a private bucket. Both VMs are accessed via OCI Bastion. All are containerized via Docker
For testing, Jest is used on the backend, which runs tests on a local database. Cypress is used on the frontend. Both use a database population script to ensure consistency in testing. There are also load tests with k6