How jose-franco22/teamup works
TeamUp is a student team-formation platform: students browse projects and compare needed roles with their skills, send join requests, and project creators accept or decline applicants to build a roster. Profiles capture skills and availability; the README also describes resume parsing and recommendations, though those capabilities are not fully evidenced in the sampled frontend. The visible app currently uses mock data by default and can call an Express API. The tree contains no backend source, so backend behavior and persistence are not mapped as implemented.
Main entry points: App.jsx Routes and navigation · client.js API client · Browse.jsx Browse projects · Profile.jsx Student profile
Components 20
Frontend app
- App entry
frontend/src/main.jsx - Routes and navigation
frontend/src/App.jsx - Landing
frontend/src/pages/Landing.jsx - Async loading
frontend/src/components/useAsync.js
Team formation
- Browse projects
frontend/src/pages/Browse.jsx - Project postings
frontend/src/pages - Skill matching
frontend/src/api/mockData.js - Join requests
frontend/src/pages/Requests.jsx - Team roster
frontend/src/pages/Team.jsx
Profiles and auth
- Student profile
frontend/src/pages/Profile.jsx - Resume parsing
frontend/src/pages/Profile.jsx - Sign-in screen
frontend/src/pages/Login.jsx - Session context
frontend/src/auth/SessionContext.jsx - Protected routes
frontend/src/auth/ProtectedRoute.jsx
API and data
- API client
frontend/src/api/client.js - Mock records
frontend/src/api/mockData.js
Other components
- Student
- Express API
- Gemini extraction
- PostgreSQL
Connections 28
- Student → App entry: opens app
- App entry → Routes and navigation: renders
- Routes and navigation → Landing: routes to
- Routes and navigation → Sign-in screen: routes to
- Routes and navigation → Browse projects: routes to
- Routes and navigation → Student profile: routes to
- Routes and navigation → Join requests: routes to
- Routes and navigation → Team roster: routes to
- Routes and navigation → Protected routes: guards
- Protected routes → Session context: checks session
- Sign-in screen → Session context: signs in
- Session context → API client: sets session identity
- Browse projects → API client: loads projects
- Browse projects → Skill matching: filters by skills
- Browse projects → API client: sends join request
- Student profile → API client: reads and updates profile
- Student profile → Resume parsing: offers import
- Resume parsing → Gemini extraction: would extract skills
- Join requests → API client: loads and responds
- Team roster → API client: loads roster
- Browse projects → Project postings: browses listings
- API client → Mock records: reads and mutates
- API client → Express API: fetches endpoints
- Express API → PostgreSQL: would persist
- Browse projects → Async loading: loads asynchronously
- Student profile → Async loading: loads asynchronously
- Join requests → Async loading: loads asynchronously
- Team roster → Async loading: loads asynchronously