A modern Spring Boot 3.5.4 REST API backend for UC Main CSP-S student merchandise and event management system. Built with JWT authentication, MapStruct for DTOs, and MySQL for data persistence.
- Java 24 (or higher)
- Maven 3.9+
- MySQL 8.0+
-
Clone the repository:
git clone https://github.com/csps/backend.git cd backend -
Build and run:
mvn clean package mvn spring-boot:run
API runs on http://localhost:8080
Set these environment variables in application.properties or via system environment:
DB_URL: MySQL connection URLDB_USERNAME: Database userDB_PASSWORD: Database password
JWT_SECRET: Secret key for signing JWT tokens
AWS_ACCESS_KEY_ID: AWS access keyAWS_SECRET_ACCESS_KEY: AWS secret keyAWS_REGION: AWS region (e.g.,us-east-1)AWS_S3_BUCKET: S3 bucket name
CLOUDFRONT_DOMAIN: CloudFront distribution domainCLOUDFRONT_KEY_PAIR_ID: CloudFront key pair IDCLOUDFRONT_PRIVATE_KEY_PATH: Path to CloudFront private key
USERNAME_FORMAT: Prefix for generated usernamesPASSWORD_FORMAT: Prefix for generated passwordsADMIN_USERNAME_FORMAT: Prefix for admin usernamesADMIN_PASSWORD_FORMAT: Prefix for admin passwords
SMTP_HOST: SMTP server host (e.g.,smtp.gmail.com)SMTP_PORT: SMTP port (e.g.,587)SMTP_USERNAME: Email address for sendingSMTP_PASSWORD: Email app password
METAGRAPH_URL: MetaGraph API endpointMETAGRAPH_API_KEY: API key for MetaGraphMETAGRAPH_PAGEID: Page ID for MetaGraph
Copy compose.yml.example to compose.yml and fill in values, then run:
docker-compose up -dWe welcome contributions! Please follow these guidelines:
- Branching: Create feature branches from
main(feat/your-feature) - Commits: Use clear messages (
feat: add feature,fix: bug fix,refactor: code improvement) - Code Style: Follow Java conventions (camelCase variables, PascalCase classes)
- Pull Requests: Include description and testing details
- Report issues with detailed reproduction steps
- Suggest features via GitHub issues
mvn spring-boot:run (auto-applies via JPA)All rights reserved.
Copyright (c) 2026 UC Main CSP-S
This software must NOT be modified or distributed without prior written consent of the copyright holders. Unauthorized reproduction or distribution will result in legal action.
For questions or issues, contact the development team via GitHub issues or reach out to the UC Main CSP-S organization.
