This repository represents the RESTful API for Reppd. Reppd allows you to track daily habits and monitor progress towards competencies over time.
Each competency consists of multiple daily disciplines, and you can then log daily activities for each discipline, such as minutes spent on that activity, exercises completed, etc.
- Create and manage competencies (e.g., Spanish Language).
- Add and manage daily disciplines for each competency (e.g., reading books, listening to a podcast, speaking practice).
- Log daily activities for each discipline (e.g., minutes spent, exercises completed).
- Retrieve data to visualize progress over time.
- Java 17
- Maven
- MySQL
git clone https://github.com/jakegodsall/reppd
cd reppd
mvn clean install
mvn spring-boot:run
Endpoint: POST api/v1/competencies
Request Body:
{
"title": "Spanish Language",
"description": "Become fluent in the Spanish language"
}
Response
{
"id": "<unique_uuid>",
"title": "Spanish Language",
"description": "Become fluent in the Spanish language",
"status": "ACTIVE",
"startDate": "Current Datetime"
}
Endpoint: POST api/v1/competencies/1/daily-disciplines
Request Body:
{
"title": "Listen to podcast X",
"description": "Listen to podcast X for 10 minutes per day",
"status": "ACTIVE",
"minimumValue": 10
}
Response
{
"id": "<unique_uuid>",
"competency_id": "<unique_uuid>",
"title": "Listen to podcast X",
"description": "Listen to podcast X for 10 minutes per day",
"minimumValue": 10
}
Endpoint: POST api/v1/daily-disciplines/1/daily-logs
Request Body:
{
"value": 5
}
Response
{
"id": "<unique_uuid>",
"daily_discipline_id": "<unique_uuid>",
"value": 5,
"logDate": "Current Datetime"
}
Endpoint: GET api/v1/daily-disciplines/1/daily-logs
Response
[
{
"id": "<unique_uuid>",
"daily_discipline_id": "<unique_uuid>",
"value": 5,
"logDate": "Current Datetime"
},
{
"id": "<unique_uuid>",
"daily_discipline_id": "<unique_uuid>",
"value": 10,
"logDate": "Current Datetime"
}
]
Contributions are welcome! Please fork the repository and submit a pull request with your changes. Ensure that your code follows the project's coding standards and includes appropriate tests.
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature
) - Commit your changes (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature/your-feature
) - Create a new Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.