Event Go is a web application that helps users discover and explore events happening around them. Users can filter events by different criteria, including location, date and more.
Check out the live version of the app here.
Check out api docs here.
- React: A JavaScript library for building user interfaces. Link
- Styled-components: A library for writing CSS in JavaScript. Link
- React Router: For routing and navigation. Link
- React Hot Toast: For displaying toast notifications. Link
- Lodash: A utility library for JavaScript. Link
- Vite: A next-generation, fast build tool for modern web development. Link
- Node.js: A JavaScript runtime environment for building server-side applications.Link
- Express: A popular Node.js web framework for building RESTful APIs.Link
- TypeScript: A statically typed superset of JavaScript.Link
- PostgreSQL: A powerful, open-source relational database.Link
- Prisma: A modern ORM for Node.js and TypeScript.Link
- Render: A cloud platform for building and deploying modern web applications.Link
- Event Discovery: Users can explore a variety of events near them based on different filters.
- Filters: Filter events by criteria such as locationand date.
- Loading Skeleton: A loading skeleton is displayed while events are being fetched.
- Responsive Design: The application is responsive, optimized for both mobile and desktop devices.
- Event Cards: Events are displayed as cards with essential details such as title, description, location, and more.
- Dynamic Content: The event list is dynamically updated based on filter selection.
The project is organized into two main directories:
client: Contains the React frontend application. server: Contains the Node.js and Express backend application.
You can run the application locally using the following steps:
- Clone the repository and install dependencies:
git clone https://github.com/davide-lombardo/event-go.git
cd event-go/client
npm install
cd event-go/server
npm install- Run the application:
- In one terminal, start the frontend:
cd client
npm run devThe frontend will be available at http://localhost:5173/
- In another terminal, start the backend:
cd server
npm run devThe backend will be available at http://localhost:4000/
- To build for production:
# In /client
npm run build
# In /server
npm run buildIf you prefer using Docker for local development, follow the steps below. This allows you to run the entire application in containers, ensuring consistency across environments.
- Install Docker on your machine.
- Follow the instructions on the Docker website to download and install Docker for your operating system.
- Start both the frontend and backend containers with:
docker-compose up --build- The frontend will be accessible at http://localhost:5173/.
- The backend will be accessible at http://localhost:4000/.
- Stopping the Docker Containers:
To stop the containers, use:
docker-compose downTo run the tests use your preferred testing library (e.g., Jest, React Testing Library). Ensure that the tests are set up and configured properly to run them. No specific tests are included in this project yet, but consider adding them to improve quality and coverage.
Feel free to fork this project, submit issues, or create pull requests for any improvements or bug fixes. Contributions are always welcome!
- React Community: For the amazing ecosystem and resources.
- Firebase: For providing an easy-to-use backend solution.
- Styled Components: For making styling in React components a breeze.
- Vite: For its fast development server and build tool.
- Open Source Contributors: Special thanks to all the open-source libraries and contributors used in this project.
Enjoy using Event Go and discover events near you! 🚀