A production-ready backend service for a full-stack Course Registration System, built with Spring Boot, MySQL, JPA/Hibernate, and containerized with Docker.
This backend powers the deployed frontend app:
🔗 Live Frontend: Course Registration System
Because of the limitations of free plans (cold starts and restricted storage), the demo may take extra time to load or occasionally show errors.
Once the backend services start running, the application works as expected.
- Backend API (Spring Boot) → Deployed on Render
- Database (MySQL) → Hosted on Railway
- Frontend (HTML/JS) → Deployed on Netlify
- API Testing → Verified via Postman
flowchart TD
A["Frontend - Netlify\n(HTML/CSS/JS/Bootstrap)"] -->|REST API Calls| B["Backend - Render\n(Spring Boot, JPA)"]
B -->|SQL Queries| C["Database - Railway\n(MySQL)"]
- 🔎 List all available courses
- 📝 Register a student for a course
- 👨🎓 View enrolled students
- ✅ REST API architecture (tested with Postman)
- ✅ Persistent storage with MySQL + JPA/Hibernate
- ✅ Clean Service & Repository layer separation
- ✅ Configurable environment via
application.properties - ✅ Dockerized backend for easy deployment
- Language: Java 17+
- Framework: Spring Boot
- ORM: Spring Data JPA / Hibernate
- Database: MySQL (Railway)
- Build Tool: Maven
- Deployment: Render + Docker
API Testing
Backend Deployment
MySQL Deployment

course-backend/
│── src/main/java/com/example/Course/Registration/System
│ ├── controller/ # REST Controllers
│ ├── model/ # Entities (Course, CourseRegister)
│ ├── repository/ # Spring Data Repositories
│ ├── service/ # Business Logic Layer
│ └── CourseRegistrationSystemApplication.java
│
│── src/main/resources
│ ├── application.properties # Config (DB, ports, etc.)
│
│── Dockerfile
│── pom.xml
│── README.mdgit clone https://github.com/seshathri044/course-backend.git
cd course-backendUpdate src/main/resources/application.properties with your DB credentials:
spring.datasource.url=jdbc:mysql://<RAILWAY_DB_HOST>:<PORT>/<DB_NAME>
spring.datasource.username=<DB_USER>
spring.datasource.password=<DB_PASS>
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=truemvn spring-boot:runBackend will start at 👉 http://localhost:8080
Build and run containerized backend: docker build -t course-backend . docker run -p 8080:8080 course-backend
| Method | Endpoint | Description |
|---|---|---|
| GET | /courses |
List all available courses |
| POST | /courses/register |
Register a student |
| GET | /courses/enrolled |
View enrolled students |
👉 Full API collection tested in Postman.
Frontend Repo 👉 course-frontend
Backend Repo 👉 course-backend
- Contributions are welcome!
This project is licensed under the Apache-2.0 License – see the LICENSE file for details.