{"id":23470855,"url":"https://github.com/horaciomuller/event-api","last_synced_at":"2025-04-14T17:22:13.513Z","repository":{"id":268150911,"uuid":"903445289","full_name":"horaciomuller/event-api","owner":"horaciomuller","description":"Developed with Java 17, Spring, Docker, Flyway, JUnit, Mockito, and deployed on AWS EC2 with GitHub Actions automation.","archived":false,"fork":false,"pushed_at":"2025-02-11T19:38:08.000Z","size":45905,"stargazers_count":29,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T19:19:48.064Z","etag":null,"topics":["aws","docker","githubactions","java","postgres","spring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/horaciomuller.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-14T16:14:53.000Z","updated_at":"2025-04-10T18:09:17.000Z","dependencies_parsed_at":"2024-12-14T18:33:45.107Z","dependency_job_id":"1f383317-e76f-4836-b72c-cd86ab37e19b","html_url":"https://github.com/horaciomuller/event-api","commit_stats":null,"previous_names":["horaciomuller/eventclean","horaciomuller/event-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horaciomuller%2Fevent-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horaciomuller%2Fevent-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horaciomuller%2Fevent-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horaciomuller%2Fevent-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/horaciomuller","download_url":"https://codeload.github.com/horaciomuller/event-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248923851,"owners_count":21183982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aws","docker","githubactions","java","postgres","spring"],"created_at":"2024-12-24T16:15:16.549Z","updated_at":"2025-04-14T17:22:08.503Z","avatar_url":"https://github.com/horaciomuller.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Event and Venue Management API\n\nAn advanced and scalable API for managing events and venues, built with modern technologies and principles. This project is designed to deliver robust performance, maintainable code, and seamless integration with existing systems.\n\n## Features\n- **Event Management**: Create, update, delete, and retrieve events with ease.\n- **Venue Management**: Manage venue details, availability, and bookings.\n- **Clean Architecture**: Following Clean Architecture principles for better code organization and maintainability.\n- **Database Versioning**: Leveraging Flyway for consistent and traceable database migrations.\n- **Containerization**: Built with Docker for simplified deployment and scalability.\n- **Modern Java**: Developed with Java 17, utilizing the latest language features.\n\n---\n\n## Tech Stack\n- **Java 17**: Modern Java features for cleaner and more efficient code.\n- **Spring Framework**: Includes Spring Boot for rapid development and Spring Data for database interaction.\n- **Docker**: Containerized application for easy deployment.\n- **Flyway**: For managing database schema migrations.\n- **PostgreSQL**: Reliable and scalable database backend.\n\n---\n\n## Architecture\nThe project follows the principles of **Clean Architecture**, ensuring:\n- **Separation of Concerns**: Dividing the application into clear layers (Domain, Application, Infrastructure, and Presentation).\n- **Testability**: High test coverage and easily testable components.\n- **Flexibility**: Easy adaptability for new features and integrations.\n\n### Project Structure\n```plaintext\nsrc\n├── main\n│   ├── java\n│   │   └── com.example.eventmanagement\n│   │       ├── application  # Application logic\n│   │       ├── domain       # Core business rules\n│   │       ├── infrastructure # External integrations and database\n│   │       └── presentation  # Controllers and REST endpoints\n│   └── resources\n│       ├── db/migration     # Flyway migrations\n│       └── application.yml  # Application configuration\n└── test\n    └── java                 # Unit and integration tests\n```\n\n---\n\n## Getting Started\n\n### Prerequisites\nEnsure you have the following installed:\n- [Java 17](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html)\n- [Docker](https://www.docker.com/)\n- [Maven](https://maven.apache.org/) (optional, if not using Docker)\n\n### Installation\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/horaciomuller/EventClean.git\n   cd event-management-api\n   ```\n\n2. Start the application with Docker:\n   ```bash\n   docker-compose up\n   ```\n\n3. Access the API documentation (Swagger):\n   ```\n   http://localhost:8080/swagger-ui/index.html\n   ```\n\n---\n\n## API Endpoints\n\n### Events\n- **GET /events**: Retrieve a list of events.\n- **POST /events**: Create a new event.\n- **PUT /events/{id}**: Update an event by ID.\n- **DELETE /events/{id}**: Delete an event by ID.\n\n### Venues\n- **GET /venues**: Retrieve a list of venues.\n- **POST /venues**: Create a new venue.\n- **PUT /venues/{id}**: Update a venue by ID.\n- **DELETE /venues/{id}**: Delete a venue by ID.\n\n---\n\n## Database Migrations\nThis project uses **Flyway** for database schema migrations. All migration scripts are located in the `src/main/resources/db/migration` folder. To run migrations manually, use:\n```bash\nmvn flyway:migrate\n```\n\n---\n\n## Testing\n\n### Unit Tests\nRun unit tests with:\n```bash\nmvn test\n```\n\n### Integration Tests\nEnsure the database is running and execute:\n```bash\nmvn verify\n```\n\n---\n\n## Contributing\nContributions are welcome! Please follow these steps:\n1. Fork the repository.\n2. Create a feature branch: `git checkout -b feature-name`\n3. Commit your changes: `git commit -m 'Add new feature'`\n4. Push to the branch: `git push origin feature-name`\n5. Submit a pull request.\n\n---\n\n## License\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## Contact\nFor questions or feedback, please contact us at [your-email@example.com](mailto:contato@java10x.dev).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoraciomuller%2Fevent-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoraciomuller%2Fevent-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoraciomuller%2Fevent-api/lists"}