New and improved patient portal using workspaces!
Before we start, this project uses pnpm instead of npm.
pnpm is a fast, improved package manager. pnpm creates hard links from the global store to the project's node_modules folders. Hard links point to the same place on the disk where the original files are. You save disk space and it's faster than npm!
/server- esno (alias of
tsx) to build and develop the TypeScript server - fastify: Node.js framework to write beautiful async code
- Prisma: the best experience working with databases while using a declarative schema
- pm2: manage production node.js clusters and more easily
- esno (alias of
/client- vue: one of the top frameworks to build web apps
- auth0: easy user management and authentication
- ag-grid: list tabular data with many features like sorting, filtering and more
We utilize pnpm workspaces to better unify the CI/CD procedures for the front and backend.
pnpm build: To run the builds of the TypeScript API server and Vue 3 front-endpnpm dev: To concurrently run the backend and front-endpnpm start: To run the servers from their production-built modepnpm prisma:start: Generate the database from the Prisma schema and get it in sync
-
Create the database
finnitakehomein PostgreSQL. -
Install pnpm
npm install -g pnpm. -
Run
pnpm installto install all workspace package modules. -
Copy the
.env.templateenv file from bothclient/andserver/to their respective.envfiles and modify accordingly. -
Then run
pnpm prisma:startto have your database in sync with the Prisma schema. -
Finally, run
pnpm devand you're good to go.
(Optional): Run
pnpm run prisma:seedin/serverto generate example data