This project is a RESTful API for managing topics and cources related to them, built with Spring Boot. It utilizes Spring Boot Web for building web applications, Apache Derby as the database, and Spring Data JPA for interacting with the database.
- Cource Management: CRUD operations for managing topics and cources related to them.
- Database Storage: In-memory database using Apache Derby.
- Interface: RESTful endpoints for course management.
- Java: Core programming language for the application logic.
- Spring Boot: Java framework for fast, scalable web applications.
- JPA: ORM tool for efficient database interaction.
- Apache Derby: Database for storing user and note information.
- Java Development Kit (JDK) 8 or higher.
- Maven for building the project.
git clone https://github.com/sk116/cource_management_api.git
cd cource_management_api
mvn clean install
mvn spring-boot:run
The application will start on http://localhost:8080
.
GET /topics
GET /topics/{topicId}
POST /topics
{
"id": "Topic Id"
"name": "Topic Name",
"description": "Topic Description"
}
PUT /topics/{topicId}
{
"id": "Topic Id"
"name": "Topic Name",
"description": "Topic Description"
}
DELETE topics/{topicId}
GET /topics/{topicId}/courses
GET /topics/{topicId}/courses/{courceId}
POST /topics/{topicId}/courses
{
"id": "Cource Id"
"name": "Course Name",
"description": "Course Description"
}
PUT /topics/{topicId}/cources/{courceId}
{
"id": "Cource Id"
"name": "Course Name",
"description": "Course Description"
}
DELETE topics/{topicId}/cources/{courceId}
This application uses Apache Derby as an embedded, in-memory database. The database is configured in the application.properties
file:
spring.datasource.url=jdbc:derby:memory:courseDB;create=true
spring.datasource.driver-class-name=org.apache.derby.jdbc.EmbeddedDriver
spring.jpa.database-platform=org.hibernate.dialect.DerbyTenSevenDialect
spring.jpa.hibernate.ddl-auto=update
These settings ensure that the database is created in memory each time the application starts.
The project relies on the following dependencies:
- Spring Boot Starter Web
- Spring Boot Starter Data JPA
- Apache Derby
These dependencies are defined in the pom.xml
file.
Feel free to contribute to the project by opening issues or submitting pull requests.
For any inquiries or issues, please contact.
For more information on the technologies used in this project, refer to the following resources: