{"id":28263544,"url":"https://github.com/alwil17/rdv_manager_api","last_synced_at":"2026-05-18T00:09:52.867Z","repository":{"id":292821914,"uuid":"982033770","full_name":"Alwil17/rdv_manager_api","owner":"Alwil17","description":"A Spring Boot REST API for managing appointments with multi-structure support, role-based access, dynamic slots, weekly availability, reminders, and audit logging.","archived":false,"fork":false,"pushed_at":"2025-05-21T14:37:31.000Z","size":260,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-26T23:55:23.484Z","etag":null,"topics":["api-design","appointment-management","booking-system","java","rbac","reservation-api","rest-api","scheduler","spring-boot","spring-data-jpa"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Alwil17.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T09:21:17.000Z","updated_at":"2025-05-21T23:15:25.000Z","dependencies_parsed_at":"2025-06-18T06:41:45.393Z","dependency_job_id":null,"html_url":"https://github.com/Alwil17/rdv_manager_api","commit_stats":null,"previous_names":["alwil17/rdv_manager_api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Alwil17/rdv_manager_api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alwil17%2Frdv_manager_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alwil17%2Frdv_manager_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alwil17%2Frdv_manager_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alwil17%2Frdv_manager_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alwil17","download_url":"https://codeload.github.com/Alwil17/rdv_manager_api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alwil17%2Frdv_manager_api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33160170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"ssl_error","status_checked_at":"2026-05-17T22:39:10.741Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-design","appointment-management","booking-system","java","rbac","reservation-api","rest-api","scheduler","spring-boot","spring-data-jpa"],"created_at":"2025-05-20T08:11:34.645Z","updated_at":"2026-05-18T00:09:52.862Z","avatar_url":"https://github.com/Alwil17.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RDV Manager API\n\nThe **RDV Manager API** is a Spring Boot-based RESTful API designed to manage appointments, clients, reminders, and related entities. It leverages MongoDB for data persistence and integrates with MapStruct and Lombok for efficient development.\n\n## Features\n\n- **CRUD Operations**: Manage clients, services, slots, reservations, and reminders.\n- **MongoDB Integration**: Uses MongoDB as the database for storing entities.\n- **MapStruct**: Simplifies object mapping between DTOs and entities.\n- **Lombok**: Reduces boilerplate code with annotations for getters, setters, constructors, etc.\n- **Spring Boot**: Provides a robust and scalable framework for building RESTful APIs.\n\n## Prerequisites\n\nBefore running the project, ensure you have the following installed:\n\n- **Java 17** or higher\n- **Maven** (for building the project)\n- **MongoDB** (running locally or remotely)\n\n## Getting Started\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/Alwil17/rdv_manager_api.git\ncd rdv_manager_api\n```\n\n### 2. Configure MongoDB\nUpdate the MongoDB connection details in `application.yml`:\n```bash\nspring.data.mongodb.uri=mongodb://localhost:27017/rdv_manager_db\n```\n\n### 3. Build the Project\nRun the following command to build the project:\n```bash\nmvn clean install\n```\n\n### 4. Run the Application\nStart the application using:\n```bash\nmvn spring-boot:run\n```\nThe API will be available at `http://localhost:PORT`.\n\n## API Endpoints\n\n### Clients\n- `POST /api/clients`: Create a new client.\n- `GET /api/clients/{id}`: Retrieve a client by ID.\n- `GET /api/clients`: Retrieve all clients.\n- `PUT /api/clients/{id}`: Update a client.\n- `DELETE /api/clients/{id}`: Delete a client.\n\n### Services\n- `POST /api/services`: Create a new service.\n- `GET /api/services/{id}`: Retrieve a service by ID.\n- `GET /api/services`: Retrieve all services.\n- `PUT /api/services/{id}`: Update a service.\n- `DELETE /api/services/{id}`: Delete a service.\n\n### Services availability\n- `POST /api/services/{serviceId}/availability`: Add availability to a service.\n- `GET /api/services/{serviceId}/availability`: Retrieve a service availabilities.\n\n### Slots\n- `POST /api/slots`: Create a new slot.\n- `GET /api/slots/{id}`: Retrieve a slot by ID.\n- `GET /api/slots`: Retrieve all slots.\n- `PUT /api/slots/{id}`: Update a slot.\n- `DELETE /api/slots/{id}`: Delete a slot.\n\n### Reservations\n- `POST /api/reservations`: Create a new reservation.\n- `GET /api/reservations/{id}`: Retrieve a reservation by ID.\n- `GET /api/reservations`: Retrieve all reservations.\n- `PUT /api/reservations/{id}`: Update a reservation.\n- `DELETE /api/reservations/{id}`: Delete a reservation.\n\n### Reminders\n- `POST /api/reminders`: Create a new reminder.\n- `GET /api/reminders/{id}`: Retrieve a reminder by ID.\n- `GET /api/reminders`: Retrieve all reminders.\n- `PUT /api/reminders/{id}`: Update a reminder.\n- `DELETE /api/reminders/{id}`: Delete a reminder.\n\n### Audit Logs\n- `GET /api/audit-logs/{id}`: Retrieve an audit log by ID.\n- `GET /api/audit-logs`: Retrieve all audit logs.\n- `GET /api/audit-logs/entity`: Retrieve audit logs by entity name and ID.\n\n---\n\n## Technologies Used\n\n- **Spring Boot**: Framework for building the API.\n- **MongoDB**: NoSQL database for data persistence.\n- **MapStruct**: For mapping between DTOs and entities.\n- **Lombok**: For reducing boilerplate code.\n- **Maven**: For dependency management and build automation.\n\n---\n\n## Project Structure\n\n```\nsrc/main/java/com/grey/rdv_manager_api\n├── controller        # REST controllers for handling API requests\n├── domain            # Domain models representing database entities\n├── mapper            # MapStruct mappers for DTO-to-entity conversion\n├── payload           # Request and response DTOs\n├── repository        # MongoDB repositories\n├── service           # Service interfaces\n├── service/impl      # Service implementations\n└── RdvManagerApi.java # Main application class\n```\n\n---\n\n## Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix.\n3. Commit your changes and push the branch.\n4. Submit a pull request.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n\n---\n\n## Contact\n\nFor questions or support, please contact [your-email@example.com].\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falwil17%2Frdv_manager_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falwil17%2Frdv_manager_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falwil17%2Frdv_manager_api/lists"}