Overview
This guide will help you set up the Extracurricular Management System (EMS) on your local machine. You’ll have both the backend API and frontend application running in under 15 minutes.Prerequisites
Before you begin, ensure you have the following installed:Java 21
Required for running the Spring Boot backend
Maven
Build tool for the Java backend
MySQL 8.0
Database server for storing application data
Node.js 20+
JavaScript runtime for the React frontend
You’ll also need an SMTP account (Gmail, Outlook, or Mailtrap) for email notifications.
Backend Setup
Configure Application Properties
Navigate to
backend/src/main/resources/ and configure application.properties:application.properties
Frontend Setup
Verify Installation
Check Backend Health
Check Backend Health
Visit
http://localhost:8080/actuator/health in your browser. You should see:Test Registration
Test Registration
Use curl or Postman to register a test user:You should receive a
201 Created response.Access Frontend
Access Frontend
Open
http://localhost:5173 in your browser. You should see the EMS login page.Common Issues
Database Connection Failed
Database Connection Failed
Error:
Cannot create PoolableConnectionFactorySolution:- Verify MySQL is running:
mysql -u root -p - Check database credentials in
application.properties - Ensure the database
ems_dbexists
Port Already in Use
Port Already in Use
Error:
Port 8080 is already in useSolution:- Change the port in
application.properties:server.port=8081 - Or kill the process using port 8080
CORS Errors
CORS Errors
Error:
CORS policy: No 'Access-Control-Allow-Origin' headerSolution:- Verify
VITE_API_BASE_URLin frontend.envmatches your backend URL - Check CORS configuration in backend
CorsConfig.java
Email Sending Fails
Email Sending Fails
Error:
Mail server connection failedSolution:- For Gmail: Enable 2FA and generate an app password
- For Outlook: Use your regular password with
smtp.office365.com - For development: Use Mailtrap.io for testing
Next Steps
Architecture
Learn about the system design and patterns
Configuration Guide
Explore advanced configuration options
API Documentation
Start building with the REST API
User Guides
Understand user workflows