Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

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

Gimmes

  • frontend login + contexts

  • backend cors, express setup and auth

  • GetCurrentUser, ValidateInputs, Errors

Timeline

  • Software General Info

  • NER Wide General Info

  • First Software Meeting - Talk about Club, Separate returning members vs new members, returning members get tech leads, new members get Launchpad Orientation (Explains what launchpad is) - Homework to do env setup based off of confluence. (ask #software_env_setup) about questions

  • 1st Week

    • Dedicate only 15 mins to wrapping up env setup (after 15 minutes were gonna start).

    • Start Discussing Prisma

      • Via slides, explain what SQL Tables is, explain what prisma schema is, explain existing scripts and what they do (10)

        • Walkthrough Schema Creation for Project, User (10)

        • Have them do Experience (10 - 20 minutes)

      • Via Slides explain what SQL Inserts are, explain what prisma.creates are (10)

        • Walkthrough seeding a project, user (5 - 10) (prisma studio to confirm)

        • Have them seed an experience (5 - 10 minutes)

      • Room for questions (10 - 20 minutes) (Padding)

      • Homework that they can start after workshop is seed 3 projects and 3 experience

      • Ask people questions during the walkthrough

  • 2nd Week

    • Start Discussing Express

      • What is an API

      • What is a Server

      • What is CRUD, HTTP

      • Routes, Controllers, Services Architecture (15-20)

      • Walkthrough

        • Create Project, Retrieve All Projects, Update Project, Delete Project + Transformers, Query args and Shared Types (15-20) (No File Uploads)

      • Have them do Create Experience, Retrieve all Experiences, Update Experiences, Delete Experiences + Transformers Query args and shared types (20-30) (No File Uploads)

      • Walkthrough File Uploads for projects (5 - 10)

      • have them do file uploads for experiences (5 - 10)

      • Homework, Finish anything they didnt get to do and do Get All Users and Log User In, Convert seeded functions to use service functions

  • 3rd Week

    • Start Discussing Testing

      • Unit tests versus integration tests (5 mins)

      • What is jest/vitest (10 mins)

      • Walkthrough

        • Tests for Create Project, Retrieve all projects, update project, delete project (15-20) minutes

      • Have them do Create Experience Retrieve all experiences, update experiences and delete experiences (20 - 30)

      • Walkthrough Postman Test for create project (5 - 10 mins)

      • Have them postman test their create experience function (5 - 10 mins)

      • Homework, Finish anything they didnt get to and test get all users and log use in

  • 4th Week

    • Start Discussing Frontend

      • What is React (5 - 10 mins)

      • What is MUI (5 - 10 mins)

      • Current Structure of Frontend (5 - 10 mins)

      • Walkthrough

  • No labels