How muhammadui/campuss-id works
Campus ID lets students submit school details and request an ID card, with payment and request storage; administrators can view and search requests. The principal flow is the Home form to the server payment endpoint, which contacts Flutterwave and stores the request after a successful response. The frontend also has a separate Flutterwave callback that saves data. The README describes the product capabilities; the graph uses sampled source for wiring, and does not assume the two payment paths are unified.
Main entry points: App.tsx App routes · index.js Express API · Home.tsx Home page · DB.js Database pool
Components 15
Student request
- App routes
client/src/App.tsx - Request form
client/src/pages/Home/Home.tsx - Faculty catalog
client/src/pages/Home/faculties.json - Home page
client/src/pages/Home/Home.tsx
Request backend
- Express API
server/index.js - Flutterwave
- MySQL
- Database pool
server/DB/DB.js
Admin tools
- Dashboard
client/src/pages/Dashboard/Dashboard.tsx - Request list
client/src/components/IDCardRequests.tsx
Authentication
- Login page
client/src/pages/Login/Login.tsx - Sign-up page
client/src/pages/SignUp/SignUp.tsx - Clerk
Other components
- Student
- Administrator
Connections 19
- Student → App routes: opens
- App routes → Home page: routes to
- App routes → Dashboard: routes to
- App routes → Login page: routes to
- App routes → Sign-up page: routes to
- Home page → Faculty catalog: reads options
- Home page → Express API: posts payment request
- Home page → Express API: posts saved details
- Home page → Flutterwave: starts payment
- Express API → Flutterwave: creates payment
- Express API → Database pool: stores request
- Express API → Database pool: reads requests
- Database pool → MySQL: queries
- Administrator → Dashboard: opens
- Dashboard → Request list: renders
- Request list → Express API: fetches requests
- Login page → Clerk: uses sign-in
- Sign-up page → Clerk: uses sign-up
- App routes → Clerk: provides auth