Kurdevent is a Next.js-based web application designed to manage and showcase events. It provides features for user authentication, event management, and an admin dashboard for managing event approvals.
- Event Management: Add, view, and manage events with detailed pages for each event.
- User Authentication: Secure login, registration, and password reset functionality.
- Admin Dashboard: Manage event approvals and view pending events.
- Dynamic Routing: Leverages Next.js dynamic routing for event and user-specific pages.
- Prisma Integration: Database management using Prisma ORM.
- Tailwind CSS: Styled with Tailwind CSS for a modern and responsive design.
- API Routes: Built-in API routes for handling authentication, event data, and user profiles.
The project is organized as follows:
prisma/: Contains the Prisma schema for database modeling.src/: Main source folder containing application logic.app/: Next.js app directory with layouts and pages.components/: Reusable UI components such as forms, navigation, and cards.lib/: Utility functions and libraries for authentication, database access, and more.styles/: Global CSS styles.utils/: Helper functions for data fetching and validation.
Ensure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn
- PostgreSQL (or your preferred database supported by Prisma)
-
Clone the repository:
git clone https://github.com/aland-ahmed/kurdevent.git
-
Navigate to the project directory:
cd kurdevent -
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in the root directory. - Add the required environment variables (e.g.,
DATABASE_URL,NEXTAUTH_SECRET).
- Create a
-
Generate Prisma client:
npx prisma generate
-
Run database migrations:
npx prisma migrate dev
Start the development server:
npm run devOpen http://localhost:3000 in your browser to view the application.
Run the test suite:
npm testDeploy the application using Vercel or your preferred hosting platform. Ensure environment variables are configured in the hosting environment.
To learn more about the technologies used in this project, check out the following resources: