{"id":30671834,"url":"https://github.com/sshine/event-booking-system","last_synced_at":"2025-09-01T04:44:36.404Z","repository":{"id":304056031,"uuid":"1017642609","full_name":"sshine/event-booking-system","owner":"sshine","description":"A vibe-coded event booking system","archived":false,"fork":false,"pushed_at":"2025-07-10T23:42:07.000Z","size":401,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-11T03:41:57.315Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/sshine.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}},"created_at":"2025-07-10T21:31:12.000Z","updated_at":"2025-07-10T23:42:11.000Z","dependencies_parsed_at":"2025-07-11T03:44:42.756Z","dependency_job_id":"0919047c-afd3-4e6b-99df-9559ada57ed1","html_url":"https://github.com/sshine/event-booking-system","commit_stats":null,"previous_names":["sshine/event-booking-system"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/sshine/event-booking-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshine%2Fevent-booking-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshine%2Fevent-booking-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshine%2Fevent-booking-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshine%2Fevent-booking-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sshine","download_url":"https://codeload.github.com/sshine/event-booking-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshine%2Fevent-booking-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273075981,"owners_count":25041284,"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-01T02:00:09.058Z","response_time":120,"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":[],"created_at":"2025-09-01T04:44:35.200Z","updated_at":"2025-09-01T04:44:36.332Z","avatar_url":"https://github.com/sshine.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Event Booking System\n\nA full-stack event booking system built with Node.js, React, and TypeScript.\n\n## Features\n\n- **Event Management**: View upcoming events with details, dates, locations, and capacity\n- **User Authentication**: Register and login with JWT-based authentication\n- **Booking System**: Book events with attendee information and prevent overbooking\n- **User Dashboard**: View and manage your bookings\n- **Admin Features**: Create, update, and delete events (admin role required)\n- **Responsive Design**: Mobile-friendly interface\n\n## Tech Stack\n\n### Backend\n- Node.js with Express\n- TypeScript\n- SQLite database\n- JWT authentication\n- bcryptjs for password hashing\n- express-validator for input validation\n- CORS and security middleware\n\n### Frontend\n- React 19 with TypeScript\n- Vite for build tooling\n- Axios for API calls\n- Context API for state management\n- CSS for styling\n\n## Project Structure\n\n```\nevent-booking-system/\n├── server/           # Backend API\n│   ├── src/\n│   │   ├── routes/   # API endpoints\n│   │   ├── models/   # Database models\n│   │   ├── middleware/ # Auth middleware\n│   │   ├── utils/    # Utility functions\n│   │   └── types/    # TypeScript types\n│   ├── package.json\n│   └── tsconfig.json\n├── client/           # Frontend React app\n│   ├── src/\n│   │   ├── components/ # React components\n│   │   ├── contexts/  # React contexts\n│   │   ├── services/  # API services\n│   │   └── types/     # TypeScript types\n│   ├── package.json\n│   └── vite.config.ts\n└── package.json      # Root package.json\n```\n\n## Getting Started\n\n### Prerequisites\n- Node.js 18+ and npm\n- Git\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd event-booking-system\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Set up environment variables**\n   ```bash\n   # Copy the example env file\n   cp server/.env.example server/.env\n\n   # Edit server/.env and update the JWT_SECRET\n   ```\n\n4. **Build the applications**\n   ```bash\n   npm run build\n   ```\n\n### Running the Application\n\n#### Development Mode\nRun both client and server in development mode:\n```bash\nnpm run dev\n```\n\nThis will start:\n- Backend server at `http://localhost:3001`\n- Frontend at `http://localhost:5173`\n\n#### Production Mode\nFirst build both applications:\n```bash\nnpm run build\n```\n\nThen start the production server:\n```bash\nnpm run start\n```\n\n## API Endpoints\n\n### Authentication\n- `POST /api/auth/register` - Register new user\n- `POST /api/auth/login` - Login user\n- `GET /api/auth/me` - Get current user profile\n- `POST /api/auth/logout` - Logout user\n\n### Events\n- `GET /api/events` - Get all upcoming events\n- `GET /api/events/:id` - Get event by ID\n- `POST /api/events` - Create new event (admin only)\n- `PUT /api/events/:id` - Update event (admin only)\n- `DELETE /api/events/:id` - Delete event (admin only)\n\n### Bookings\n- `GET /api/bookings` - Get user's bookings\n- `GET /api/bookings/:id` - Get booking by ID\n- `POST /api/bookings` - Create new booking\n- `PUT /api/bookings/:id/cancel` - Cancel booking\n- `GET /api/bookings/event/:eventId` - Get event bookings (admin only)\n\n## Usage\n\n### For Regular Users\n1. **Register/Login**: Create an account or login with existing credentials\n2. **Browse Events**: View upcoming events on the homepage\n3. **Book Events**: Click \"Book Now\" on any event to make a reservation\n4. **Manage Bookings**: View and cancel your bookings in \"My Bookings\"\n\n### For Administrators\n1. **Create Events**: Use the API to create new events\n2. **Manage Events**: Update or delete existing events\n3. **View Bookings**: Access booking information for events\n\n## Environment Variables\n\n### Server (.env)\n```\nNODE_ENV=development\nPORT=3001\nJWT_SECRET=your-super-secret-jwt-key-change-this-in-production\nDATABASE_URL=./database.sqlite\nCORS_ORIGIN=http://localhost:5173\n```\n\n## Database Schema\n\nThe application uses SQLite with the following tables:\n- `users` - User accounts and authentication\n- `events` - Event information and details\n- `bookings` - Event bookings and attendee information\n\n## Security Features\n\n- JWT-based authentication\n- Password hashing with bcryptjs\n- Input validation and sanitization\n- CORS protection\n- Rate limiting\n- SQL injection prevention with parameterized queries\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshine%2Fevent-booking-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsshine%2Fevent-booking-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshine%2Fevent-booking-system/lists"}