Eventura is a full-stack web application built with the MERN stack (MongoDB, Express.js, React, Node.js). It provides a seamless and intuitive platform for users to discover, create, and book events happening around them.
Eventura is packed with features designed for both event organizers and attendees:
- User Authentication: Secure user registration and login system using JSON Web Tokens (JWT).
- Event Discovery: Browse and search for events on the homepage.
- Create & Manage Events: Authenticated users can create their own events, complete with titles, descriptions, dates, locations, and image uploads.
- Image Uploads: Seamless image handling for event posters using Multer.
- Detailed Event Pages: Each event has a dynamic page with all its information.
- One-Click Booking: Users can easily book a spot at any event.
- User Dashboard: A personal dashboard for users to view all the events they have booked.
- Responsive Design: A clean and modern UI built with Tailwind CSS that works beautifully on all devices.
This project follows a client-server architecture, with a React front-end communicating with a Node.js/Express back-end via a RESTful API.
Client-Side (Frontend):
- React.js: A powerful JavaScript library for building user interfaces.
- React Router: For client-side routing and navigation.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- Axios: For making HTTP requests to the back-end API.
- Vite: As the frontend build tool and development server.
Server-Side (Backend):
- Node.js: A JavaScript runtime for the server.
- Express.js: A minimal and flexible Node.js web application framework.
- MongoDB: A NoSQL database for storing application data.
- Mongoose: An ODM library for MongoDB and Node.js to model application data.
- JSON Web Token (JWT): For securing user authentication.
- BcryptJS: For hashing user passwords.
- Multer: A middleware for handling
multipart/form-data, used for file uploads.
To get a local copy up and running, follow these steps.
- Node.js (v14 or higher)
- npm
- MongoDB installed and running on your local machine, or a connection string from MongoDB Atlas.
# Clone the repository
git clone [https://github.com/VitorPio7/Eventura.git](https://github.com/VitorPio7/Eventura.git)
# Navigate to the server directory
cd Eventura/server
# Install dependencies
npm installCreate a .env file in the server directory and add the following variables.
.env.example
MONGO_URL=your_mongodb_connection_string
JWT_SECRET=your_super_secret_jwt_key
Now, you can start the back-end server:
npm startThe server will be running on http://localhost:4000.
Open a new terminal window.
# Navigate to the client directory from the root folder
cd Eventura/client
# Install dependencies
npm installCreate a .env.local file in the client directory and add the following variable to connect the frontend with the backend.
.env.local
VITE_API_URL=http://localhost:4000
Now, you can start the front-end development server:
npm run devThe application will be available at http://localhost:5173 (or the next available port).
The back-end provides the following RESTful API endpoints:
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
Register a new user. |
POST |
/api/auth/login |
Log in a user and get a JWT token. |
GET |
/api/events |
Get a list of all events. |
GET |
/api/events/:id |
Get details for a single event. |
POST |
/api/events |
Create a new event (auth required). |
POST |
/api/bookings |
Book an event for a user (auth required). |
GET |
/api/bookings |
Get all bookings for the logged-in user. |
Distributed under the MIT License. See the LICENSE file for more information.
Vitor Pio - GitHub Profile





