Technologies
Backend
Node.js (Run time)
Typescript (Language)
Prisma ORM (Database Relational Mapping)
Docker + PostgreSQL (Containerization of Database)
Express (Server)
Shared
Frontend
Node.js (Run time)
Typescript (Language)
React (Framework)
MUI (Component Library)
React Query (State Management)
Axios (Http Flow Management)
Use form (Forms)
Vite
Shared
Shared
Typescript (Language)
Yarn (Workspace Manager)
Structure
Backend
index.ts (Declares express server and uses routers + cors, error handling)
Prisma (Schema and seeding for our database)
routes (Declare routers for experiences, users, projects, links and handles middleware validation)
Controllers (Handle the http level interface of the request, parse any information from the body or paramaters and pass information to service function. Passes errors as needed to error handler)
Services (Handles business logic of any api request. Interacts with our database using prisma)
Query Args (Include relational information required by the frontend for a given api request)
Tranformers (Transform the prisma models into a type expected by the frontend)
Testing (Unmocked Tests)
Frontend
Index.tsx (Entry Point for React app)
Auth Context (Logging the user in and tracking the current user) undefined is gonna be a guest
apis (Axios calls to backend)
hooks (Largely Manage state between axios calls and frontend displays)
components (Shared ui pieces)
pages (Large single instances of compilations of components)
Projects
Experience
About Me (bio)
Shared
Types