MyEaglePortal

Features, Structure, and Logic

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.

Class Search Class Filtering

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).

Payment Page

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.

Main Parking Page Parking Management

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.

Campus 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.

Job Opportunities Page

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.

Events Page Appointments Page

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.

Login Page Light Mode Signup Dark Mode Signup Password and Security Account Settings

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.

Scaling for PC Scaling for Mobile