A modern, full-stack event management platform built with React TypeScript and Node.js. Create, discover, and manage events with a beautiful, responsive interface.
Frontend: https://event-manager-frontend-ruby.vercel.app
Backend API: https://event-manager-backend-smoky.vercel.app
Demo: Create your own account or use demo@example.com / demo123
| Dashboard | Login | Signup | Create Event |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- User registration and login with JWT tokens
- Secure password hashing with bcrypt
- Protected routes and session persistence
- Create events with title, description, location, and date
- Upload and manage event images with Cloudinary
- View all events in a responsive grid layout
- Edit and delete your own events
- Clean, elegant design with Tailwind CSS
- Fully responsive (mobile, tablet, desktop)
- Loading states and error handling
Frontend: React 18, TypeScript, Tailwind CSS, Vite
Backend: Node.js, Express, TypeScript, PostgreSQL
Cloud: Vercel (hosting), Cloudinary (images)
Auth: JWT, bcryptjs
-
Clone repository
git clone https://github.com/rada-ii/event-manager.git cd event-manager -
Backend setup
cd backend npm install npm run dev # http://localhost:3000
-
Frontend setup (new terminal)
cd frontend npm install npm run dev # http://localhost:5173
Backend (.env):
DATABASE_URL=postgresql://username:password@host:port/database
JWT_SECRET=your_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secretFrontend (.env):
VITE_API_URL=http://localhost:3000Authentication:
POST /users/signup # Register user
POST /users/login # Login user
Events:
GET /events # Get all events
POST /events # Create event (auth)
PUT /events/:id # Update event (owner)
DELETE /events/:id # Delete event (owner)
GET /events/my # Get user's events
Health:
GET /health # API health check
Both frontend and backend are deployed on Vercel with automatic deployments from the main branch.
- JWT-based authentication
- Password hashing with bcrypt
- SQL injection protection
- File upload validation
- CORS configuration
- Fork the repository
- Create feature branch:
git checkout -b feature-name - Commit changes:
git commit -m 'Add feature' - Push and create Pull Request
Author: Rada Ivanković
GitHub: @rada-ii
Email: ra.da@live.com
LinkedIn: Rada Ivanković
⭐ Star this repo if you found it helpful!



