The Event App was my engineering thesis project, developed to create & manage IT conferences. It was successfully used during one of the largest IT conferences for students in my region.
Attention - this version is being rewritten from scratch (with different UI), but I still have original code stored in private repository.
- Create, edit, and manage lectures and workshops.
- Sign up for event and receive news about it.
- Engage participants through rewards for active involvement.
- Generate customized/branded QR codes.
- Showcase sponsors and partners.
- Manage users, volunteers and lecturers.
- Display stats about event attendance.
Explore the live demo click here.
Please note that most of the content requires an admin role for full access. Feel free to request access. Additionally, a YouTube project showcase will be available soon.
Some screenshots of website, mostly of hidden admin panel. Video showing every functionality is coming soon.
To run this project, you will need to add the following environment variables to your .env
file:
NEXT_PUBLIC_EVENT_DATE
: Event start date for countdown.KINDE_CLIENT_ID
: Your Kinde application's client ID used for authentication.KINDE_CLIENT_SECRET
: Your Kinde application's client secret used for authentication.KINDE_ISSUER_URL
: The URL for your Kinde issuer, which handles the OpenID Connect (OIDC) authorization flow.KINDE_SITE_URL
: The base URL of your application (usuallyhttp://localhost:3000
for local development).KINDE_POST_LOGOUT_REDIRECT_URL
: The URL to redirect users to after logging out of the application. Should end in/success
to grab user data.KINDE_POST_LOGIN_REDIRECT_URL
: The URL to redirect users to after a successful login.DATABASE_URL
: The URL to connect to your PostgreSQL database (contains credentials, host, and port information).UPLOADTHING_SECRET
: Your secret key for using the UploadThing API.UPLOADTHING_APP_ID
: Your application ID for using the UploadThing API.NEXT_PUBLIC_WEBSITE_URL
: The publicly accessible URL for your application.APP_WORKSHOP_POINTS_VALUE
: Number of points awarded upon scanning the workshop QR code.APP_LECTURE_POINTS_VALUE
: Number of points awarded upon scanning the lecture QR code.APP_SPONSOR_PARTNER_POINTS_VALUE
: Number of points awarded upon scanning the sponsor/partner QR code.APP_WORKSHOP_MAXIMUM_PARTICIPANTS_VALUE
: Number of users eligible to sign up for the workshop.
To get started with the project locally, follow these steps:
Clone the repository:
git clone https://github.com/klisiubb/event-app.git
Navigate to the project directory:
cd event-app
Set up environment variables:
Fill out the .env
file with the necessary environment variables.
You need Kinde & UploadThing accounts and PostgreSQL db.
Also in Kinde you need to create Admin
role with admin
key.
Then you need to add Roles
to AccessToken
. It's important for Admin Panel to work.
This role is not assigned by default, so assign it to yourself and refresh token by loging out.
Install dependencies:
bun install
Migrate db:
bunx prisma migrate dev
Start the development server:
bun dev
Access the application:
localhost:3000
Throughout this project, I gained valuable experience with new technologies, including Next.js 14, Zod, and React Hook Form. This was my first significant project built from the ground up, diverging from the typical approach of following a tutorial-based project. It presented numerous challenges commonly associated with large-scale applications, such as debugging and managing complexity.
Some of the key challenges I faced included:
- Date Formatting: Handling the start and finish dates for workshops and lectures.
- Reward Algorithm: Developing an effective algorithm for drawing rewards.
- Time Management: Working under pressure to ensure timely completion for university requirements.
These experiences have greatly enhanced my problem-solving skills and understanding of project management.
- Finish project to restore the previous version state.
- Add quizzes for workshops.
- Add signing up for workshops.
- Add user portal.
- Build a statistics page for overall performance metrics.
- Enhance email and notification features.
- Implement a countdown timer for the start of events.
- Change default QR codes with branding images.
- Add sponsors/partners and rewards to landing page.
- Create stunning landing page.
- Add volunteers to landing page (with subroles and photos).
- Role/Permissions sync with Kinde.
- Explore additional features and improvements.
This project is licensed under MIT.