Dev-Events is a full-stack web application built with Next.js that serves as a central hub for discovering and booking developer-focused events, including hackathons, meetups, and conferences. The platform features a dynamic and modern user interface, a robust backend for event and booking management, and integrated analytics.
- Event Discovery: Browse a curated list of developer events on the homepage.
- Detailed Event Pages: View comprehensive information for each event, including description, agenda, location, date, time, and organizer details.
- Event Booking: A simple, email-based system allows users to book their spot for an event.
- Similar Event Recommendations: Discover related events based on shared tags.
- Dynamic UI: An interactive light-ray background effect created with WebGL (OGL) enhances the user experience.
- Analytics: Integrated with PostHog for tracking user engagement and application performance.
- Image Management: Utilizes Cloudinary for efficient handling of event image uploads.
- Framework: Next.js (App Router)
- Language: TypeScript
- Database: MongoDB with Mongoose
- Styling: Tailwind CSS
- Analytics: PostHog
- Image Management: Cloudinary
- 3D Graphics: OGL (WebGL)
To run this project locally, you need to create a .env.local file in the root directory and add the following environment variables:
# MongoDB Connection String
MONGODB_URI="your_mongodb_connection_string"
# Base URL of the application
NEXT_PUBLIC_BASE_URL="http://localhost:3000"
# Cloudinary Credentials (for event image uploads)
# You can find this in your Cloudinary dashboard
CLOUDINARY_URL="cloudinary://<API_KEY>:<API_SECRET>@<CLOUD_NAME>"
# PostHog Analytics
NEXT_PUBLIC_POSTHOG_KEY="your_posthog_public_key"Follow these instructions to set up and run the project on your local machine.
-
Clone the repository:
git clone https://github.com/Esm3il/dev-events.git
-
Navigate to the project directory:
cd dev-events -
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.localfile in the root of the project and populate it with the required variables as described in the section above. -
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser to see the application.
The application exposes the following API endpoints for managing events:
GET /api/events- Fetches a list of all events, sorted by creation date.
POST /api/events-_ Creates a new event. Requires form-data including event details and an image file.GET /api/events/[slug]- Fetches the details of a single event by its unique slug.