Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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