How bornaboyafraz/opportunityos works
OpportunityOS is a student opportunity-tracking application. The main workflow is registration or login, followed by loading and managing a user’s private opportunities in a dashboard; records include status, deadline, link, and notes. The React app calls a Spring Boot API, whose controllers use repositories to persist users and opportunities in PostgreSQL. The dashboard also supports search, status filtering, deadline display, and status statistics. The README documents these capabilities; wiring not evidenced in the sampled frontend/API excerpts is left unconnected.
Main entry points: App.jsx App and dashboard · api.js API client · UserController.java User controller · OpportunityController.java Opportunity controller
Components 11
React frontend
- App and dashboard
frontend/src/App.jsx - Opportunity helpers
frontend/src/lib/opportunities.js - API client
frontend/src/api.js
Spring API
- User controller
src/main/java/com/bornaboyafraz/opportunityos/controller/UserController.java - Opportunity controller
src/main/java/com/bornaboyafraz/opportunityos/controller/OpportunityController.java
Domain model
- User model
src/main/java/com/bornaboyafraz/opportunityos/model/User.java - Opportunity model
src/main/java/com/bornaboyafraz/opportunityos/model/Opportunity.java
Persistence
- User repository
src/main/java/com/bornaboyafraz/opportunityos/repository/UserRepository.java - Opportunity repository
src/main/java/com/bornaboyafraz/opportunityos/repository/OpportunityRepository.java
Other components
- Student
- PostgreSQL
Connections 11
- Student → App and dashboard: uses
- App and dashboard → API client: calls
- App and dashboard → Opportunity helpers: filters and counts
- API client → User controller: HTTP auth requests
- API client → Opportunity controller: HTTP record requests
- User controller → User repository: saves and looks up
- Opportunity controller → Opportunity repository: queries and mutates
- User controller → User model: accepts and returns
- Opportunity controller → Opportunity model: accepts and returns
- User repository → PostgreSQL: persists users
- Opportunity repository → PostgreSQL: persists opportunities