Skip to content

klisiubb/event-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f595d06 · Feb 4, 2025
Nov 29, 2024
Dec 8, 2024
Dec 9, 2024
Oct 19, 2024
Oct 7, 2024
Oct 9, 2024
Dec 2, 2024
Nov 29, 2024
Nov 30, 2024
Dec 2, 2024
Nov 29, 2024
Sep 5, 2024
Sep 5, 2024
Sep 5, 2024
Sep 5, 2024
Dec 8, 2024
Feb 4, 2025
Sep 5, 2024
Oct 13, 2024
Feb 4, 2025
Sep 5, 2024
Nov 29, 2024
Dec 3, 2024

Repository files navigation

Event App (Engineering Thesis)

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.

The app allows to:

  • 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.

Live Demo

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.

Screenshots

Some screenshots of website, mostly of hidden admin panel. Video showing every functionality is coming soon.

Landing page:

Screenshot-1.png

Event countdown:

Screenshot-2.png

Percs section:

Screenshot-3.png

Animated agenda for users:

Animated agenda for users

Main admin panel view:

Main admin panel view

Event attendance stats panel:

Event attendance stats panel

Users management:

Users management

Workshop setup:

Workshop setup

Workshops view with filtering by text/status:

Workshops view with filtering by text/status

Environment Variables

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 (usually http://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.

Tech Stack

Next JS Bun Shadcn/ui CSS3 HTML5 TypeScript JavaScript React React Hook Form TailwindCSS Zod Postgres Prisma

Run Locally

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

Lessons Learned

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.

Roadmap

  • 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.

License

This project is licensed under MIT.