System Architecture
MyEaglePortal (MEP) is a modular web application. Each feature is tied into a shared MySQL database and runs through Spring Boot APIs. User authentication passes through CSULA’s SSO, reCaptcha, and 2FA. Payments are processed via Stripe API. Below is the logical flow:
+------------+ +---------------+ +----------------+ | Browser | <----> | Web Server | <--> | MySQL Database | +------------+ +---------------+ +----------------+ | | | +--> APIs: Stripe, Google, reCaptcha | +--> Responsive UI (mobile/desktop)
Course Management
Students can search, filter, add, and drop courses. - Frontend: The UI queries available classes with filters (department, time, instructor). - Backend: Requests go to Spring Boot → MySQL Courses + Enrollment tables. - Logic: Deadline rules are enforced by the backend. Waitlist checks ensure students cannot exceed enrollment caps.


Finance & Payments
Handles tuition and other student charges. - Frontend: Shows a transaction history and a shopping cart–style purchase page. - Backend: Payment actions call Stripe API (REST). User card info never touches MEP directly; instead tokens are passed. - Logic: Transaction → Payment Request → Stripe Response → Update MySQL (Payments table).

Parking Management
Provides real-time availability and reservations. - Frontend: Parking page fetches slot availability dynamically. - Backend: Reservation requests → MySQL (ParkingSlots table). - Logic: User selects slot → DB marks slot reserved → Notification sent. Canceling frees up the slot in the DB.


Campus Map
A dynamic campus map allows searching by building, room, or schedule. - Frontend: Map UI provides zoom, pan, and coordinate display. - Backend: Building/Room data stored in MySQL → retrieved through API calls. - Logic: Queries match building/room IDs → renders highlight on map.

Job Opportunities
Provides job listings from campus and partners. - Frontend: Users filter/search listings by type, location, or classification. - Backend: Listings stored in MySQL Jobs table. Employer submissions are validated before posting. - Logic: Search query → filter jobs → display → option to save/apply externally.

Events & Appointments
Allows students to browse events and schedule appointments. - Frontend: Calendar-based UI for events and appointment slots. - Backend: Events + Appointments tables in MySQL store scheduling data. - Logic: Select event/slot → verify availability → reserve → confirmation email sent.


Authentication & Security
Secure login and account settings. - Frontend: Login/signup forms support light and dark modes. - Backend: Authentication integrates with CSULA SSO, reCaptcha, Google API. - Logic: Username + password → reCaptcha → 2FA (Duo/Google Auth) → Access token. Accounts are locked after multiple failed attempts. All actions logged for admins.





Responsive Design
MEP is responsive and tested across desktop and mobile. - Logic: Bootstrap-based layouts auto-scale. Preloading and lazy loading optimize for device performance.

