{"id":31030977,"url":"https://github.com/sandeepvashishtha/eventra-backend","last_synced_at":"2026-05-07T05:38:08.597Z","repository":{"id":313558152,"uuid":"1051793522","full_name":"SandeepVashishtha/Eventra-Backend","owner":"SandeepVashishtha","description":"A comprehensive event management system backend built with Spring Boot, providing secure RESTful APIs for event creation, user management, and administrative operations.","archived":false,"fork":false,"pushed_at":"2025-09-06T20:50:29.000Z","size":205,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-06T22:25:15.420Z","etag":null,"topics":["java","java-17","mysql","spring","spring-boot","springboot"],"latest_commit_sha":null,"homepage":"https://eventra-backend-dgcae3etebbag8ft.centralindia-01.azurewebsites.net/","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/SandeepVashishtha.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-06T18:23:40.000Z","updated_at":"2025-09-06T20:55:26.000Z","dependencies_parsed_at":"2025-09-06T22:25:25.116Z","dependency_job_id":"1b0a5d3f-c7bf-4754-a383-a49617d8219f","html_url":"https://github.com/SandeepVashishtha/Eventra-Backend","commit_stats":null,"previous_names":["sandeepvashishtha/eventra-backend"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/SandeepVashishtha/Eventra-Backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandeepVashishtha%2FEventra-Backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandeepVashishtha%2FEventra-Backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandeepVashishtha%2FEventra-Backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandeepVashishtha%2FEventra-Backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SandeepVashishtha","download_url":"https://codeload.github.com/SandeepVashishtha/Eventra-Backend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandeepVashishtha%2FEventra-Backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275043676,"owners_count":25395593,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["java","java-17","mysql","spring","spring-boot","springboot"],"created_at":"2025-09-13T23:57:15.205Z","updated_at":"2026-05-07T05:38:08.570Z","avatar_url":"https://github.com/SandeepVashishtha.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Eventra Backend\n\nA comprehensive event management system backend built with Spring Boot, providing secure RESTful APIs for event creation, user management, and administrative operations.\n\n## 🚀 Features\n\n- **Authentication \u0026 Authorization**: JWT-based security with role-based access control\n- **Event Management**: Create, update, delete, and manage events\n- **User Management**: User registration, profile management, and admin operations\n- **Project Management**: Handle event-related projects and collaborations\n- **Health Monitoring**: Built-in health checks and monitoring endpoints\n- **API Documentation**: Interactive Swagger UI with OpenAPI 3.0 specification\n- **Database Flexibility**: Support for both MySQL (production) and H2 (development)\n- **Azure Cloud Ready**: Complete deployment configuration for Azure App Service\n\n## 🛠 Technology Stack\n\n- **Framework**: Spring Boot 3.3.1\n- **Language**: Java 17\n- **Build Tool**: Maven\n- **Security**: Spring Security with JWT\n- **Database**: MySQL (production) / H2 (development)\n- **ORM**: Spring Data JPA with Hibernate\n- **Documentation**: SpringDoc OpenAPI (Swagger)\n- **Validation**: Spring Boot Validation\n- **Testing**: JUnit 5 with Spring Boot Test\n- **Cloud**: Azure App Service deployment ready\n\n## 📋 Prerequisites\n\nBefore running the application, ensure you have:\n\n- **Java 17** or higher\n- **Maven 3.6+** (or use included Maven wrapper)\n- **MySQL 8.0+** (for production environment)\n- **Git** for version control\n\n## 🏃‍♂️ Quick Start\n\n### Local Development Setup\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/SandeepVashishtha/Eventra-Backend\n   cd Eventra-Backend\n   ```\n\n2. **Run with Maven Wrapper (Recommended)**\n   \n   **Windows:**\n   ```cmd\n   .\\mvnw.cmd spring-boot:run\n   ```\n   \n   **Linux/Mac:**\n   ```bash\n   ./mvnw spring-boot:run\n   ```\n\n3. **Alternative: Build and run JAR**\n   ```bash\n   .\\mvnw.cmd clean package\n   java -jar target/backend-0.0.1-SNAPSHOT.jar\n   ```\n\nThe application will start on `http://localhost:8080` using H2 in-memory database for development.\n\n### 🌐 Access Points\n\nOnce running, you can access:\n\n- **API Base URL**: `http://localhost:8080/api`\n- **Swagger UI**: `http://localhost:8080/swagger-ui.html`\n- **H2 Console**: `http://localhost:8080/h2-console` (dev mode only)\n- **Health Check**: `http://localhost:8080/health`\n\n## 🗄 Database Configuration\n\n### Development (H2 - Default)\nThe application uses H2 in-memory database by default for development with these credentials:\n- **URL**: `jdbc:h2:mem:testdb`\n- **Username**: `sa`\n- **Password**: *(empty)*\n\n### Production (MySQL)\nConfigure the following environment variables for MySQL:\n\n```bash\nAIVEN_DATABASE_URL=jdbc:mysql://your-mysql-host:3306/eventra_db?useSSL=true\nAIVEN_DATABASE_USERNAME=your_username\nAIVEN_DATABASE_PASSWORD=your_password\nDATABASE_DRIVER=com.mysql.cj.jdbc.Driver\nDATABASE_DIALECT=org.hibernate.dialect.MySQL8Dialect\nDDL_AUTO=update\n```\n\n### Using Different Profiles\n\n**Development Profile:**\n```bash\nmvn spring-boot:run -Dspring.profiles.active=dev\n```\n\n**Production Profile:**\n```bash\nmvn spring-boot:run -Dspring.profiles.active=prod\n```\n\n**Azure Profile:**\n```bash\nmvn spring-boot:run -Dspring.profiles.active=azure\n```\n\n## 🔐 Security Configuration\n\nThe application uses JWT-based authentication. Configure these environment variables:\n\n```bash\nJWT_SECRET=your-256-bit-secret-key\nJWT_EXPIRATION=86400000  # 24 hours in milliseconds\n```\n\n## 📚 API Documentation\n\n### Interactive Documentation\nAccess the Swagger UI at: `http://localhost:8080/swagger-ui.html`\n\n### Main API Endpoints\n\n| Endpoint Category | Base Path | Description |\n|------------------|-----------|-------------|\n| Authentication | `/api/auth` | Login, register, token management |\n| Users | `/api/users` | User profile and management |\n| Events | `/api/events` | Event CRUD operations |\n| Admin | `/api/admin` | Administrative operations |\n| Projects | `/api/projects` | Project management |\n| Health | `/health` | Application health checks |\n\n### Authentication Endpoints\n- `POST /api/auth/login` - User login\n- `POST /api/auth/register` - User registration\n- `POST /api/auth/refresh` - Refresh JWT token\n\n### Event Management\n- `GET /api/events` - List all events\n- `POST /api/events` - Create new event\n- `GET /api/events/{id}` - Get event by ID\n- `PUT /api/events/{id}` - Update event\n- `DELETE /api/events/{id}` - Delete event\n\n## 🧪 Testing\n\n### Run All Tests\n```bash\n./mvnw test\n```\n\n### Run Specific Test Classes\n```bash\n./mvnw test -Dtest=BackendApplicationTests\n./mvnw test -Dtest=ErrorHandlingTest\n```\n\n### Test Coverage\nThe project includes:\n- **Unit Tests**: Individual component testing\n- **Integration Tests**: End-to-end API testing\n- **Security Tests**: Authentication and authorization testing\n\n## 🏗 Project Structure\n\n```\nEventra-Backend/\n├── src/\n│   ├── main/\n│   │   ├── java/com/eventra/\n│   │   │   ├── BackendApplication.java          # Main application class\n│   │   │   ├── SecurityConfig.java              # Security configuration\n│   │   │   ├── controller/                      # REST Controllers\n│   │   │   │   ├── AuthController.java          # Authentication endpoints\n│   │   │   │   ├── UserController.java          # User management\n│   │   │   │   ├── EventController.java         # Event operations\n│   │   │   │   ├── AdminController.java         # Admin operations\n│   │   │   │   └── ...\n│   │   │   ├── service/                         # Business logic\n│   │   │   ├── repository/                      # Data access layer\n│   │   │   ├── entity/                          # JPA entities\n│   │   │   ├── dto/                             # Data transfer objects\n│   │   │   ├── config/                          # Configuration classes\n│   │   │   ├── exception/                       # Custom exceptions\n│   │   │   ├── filter/                          # Security filters\n│   │   │   └── util/                            # Utility classes\n│   │   └── resources/\n│   │       ├── application.properties           # Main configuration\n│   │       ├── application-dev.properties       # Development config\n│   │       ├── application-prod.properties      # Production config\n│   │       └── application-azure.properties     # Azure config\n│   └── test/                                    # Test classes\n├── target/                                      # Compiled output\n├── bin/                                         # Build scripts\n├── pom.xml                                      # Maven configuration\n├── mvnw, mvnw.cmd                              # Maven wrapper\n├── deploy-azure.ps1                            # Azure deployment script\n├── test-azure-backend.ps1                     # Azure testing script\n├── AZURE_DEPLOYMENT_GUIDE.md                  # Azure deployment guide\n└── README.md                                   # This file\n```\n\n## ☁️ Azure Deployment\n\nThis project is configured for Azure App Service deployment. Follow these guides:\n\n### Quick Azure Deployment\n1. **Configure Azure CLI** and login to your account\n2. **Run the deployment script**:\n   ```powershell\n   .\\deploy-azure.ps1\n   ```\n\n### Detailed Guides\n- 📖 **[Azure Deployment Guide](AZURE_DEPLOYMENT_GUIDE.md)** - Complete Azure setup instructions\n- 📖 **[Azure Config Template](AZURE_CONFIG_TEMPLATE.md)** - Environment configuration template\n- 🛠 **[Database Migration Guide](DATABASE_MIGRATION.md)** - Database setup and migration\n\n### Test Azure Deployment\n```powershell\n.\\test-azure-backend.ps1\n```\n\n## 🔧 Environment Variables\n\n### Required for Production\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `AIVEN_DATABASE_URL` | MySQL database URL | `jdbc:mysql://host:3306/db` |\n| `AIVEN_DATABASE_USERNAME` | Database username | `your_username` |\n| `AIVEN_DATABASE_PASSWORD` | Database password | `your_password` |\n| `JWT_SECRET` | JWT signing secret | `your-256-bit-secret` |\n\n### Optional Configuration\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `PORT` | Server port | `8080` |\n| `JWT_EXPIRATION` | Token expiration (ms) | `86400000` |\n| `DB_MAX_POOL_SIZE` | Max connection pool size | `10` |\n| `SHOW_SQL` | Show SQL queries | `false` |\n\n## 🐛 Troubleshooting\n\n### Common Issues\n\n**Port already in use:**\n```bash\n# Change port in application.properties or set environment variable\nexport PORT=8081\n```\n\n**Database connection failed:**\n- Verify MySQL is running and accessible\n- Check connection string and credentials\n- Ensure database exists\n\n**JWT token issues:**\n- Verify JWT_SECRET is properly set\n- Check token expiration time\n- Ensure proper Authorization header format: `Bearer \u003ctoken\u003e`\n\n### Debug Mode\nEnable debug logging:\n```bash\nmvn spring-boot:run -Dspring.profiles.active=dev -Dlogging.level.com.eventra=DEBUG\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Please follow these guidelines:\n\n1. **Fork the repository**\n2. **Create a feature branch**: `git checkout -b feature/amazing-feature`\n3. **Make your changes** following the existing code style\n4. **Add tests** for new functionality\n5. **Run all tests**: `./mvnw test`\n6. **Commit your changes**: `git commit -m 'Add amazing feature'`\n7. **Push to the branch**: `git push origin feature/amazing-feature`\n8. **Open a Pull Request**\n\n### Code Style Guidelines\n- Follow Java naming conventions\n- Use Lombok annotations to reduce boilerplate\n- Add proper JavaDoc for public methods\n- Write comprehensive tests for new features\n- Follow RESTful API design principles\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 📞 Support\n\nFor questions and support:\n- 📧 Create an issue in this repository\n- 📚 Check the [documentation](docs/)\n- 💬 Join our community discussions\n\n## 🚀 What's Next?\n\nUpcoming features and improvements:\n- [ ] Real-time notifications\n- [ ] Event analytics dashboard\n- [ ] Mobile API optimization\n- [ ] Advanced search capabilities\n- [ ] Integration with external calendar systems\n\n---\n\nBuilt with ❤️ using Spring Boot and Java\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandeepvashishtha%2Feventra-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandeepvashishtha%2Feventra-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandeepvashishtha%2Feventra-backend/lists"}