Skip to content

🎊 A fest management web app for college fests with virtual currency to buy event tickets and items, and features for their management

Notifications You must be signed in to change notification settings

Samirkhairati/Fezt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎊 Fezt

Overview

Fezt is a platform designed to streamline event management and item purchases within a campus environment. The frontend is developed using React and Vite, while the backend is built with Express. MongoDB serves as the database, and TypeScript is used throughout the codebase.

Screenshots

image image image image image image image

CRUD Functionality

  • User Types: There are two types of users: students and vendors.
  • Student Authentication: Students can log in via Google OAuth, restricted to their BITS ID.
  • Vendor Authentication: Vendors log in using their email and password.
  • Account Creation:
    • Email verification is required for both students and vendors. An email containing a verification code is sent, which must be entered to proceed with account creation.
    • Account creation involves completing forms with various fields, managed using react-hook-form and react-query.
  • Student Capabilities:
    • Students can create, update, and delete clubs.
    • Clubs can create, update, and delete events.
    • Students can register for multiple events.
    • Students can place orders for multiple items sold by vendors.
  • Vendor Capabilities:
    • Vendors can mark orders as accepted, ready, and delivered.

Authentication

  • JWT Authentication: Implemented for both students and vendors.
  • Google Sign-In: Students sign in using their Google accounts via Firebase.
  • Email Services: NodeMailer is used to send emails for confirmation, verification, and password recovery.

Additional Features

  • Server-Side Caching: Redis is used for caching to improve server performance.
  • Progressive Loading: Events and items are progressively loaded as users scroll, enhancing user experience.
  • Dashboard: Separate dashboards for students and vendors are created to manage clubs, events, items, and orders.

Virtual Currency System

  • Initial Balance: Each user starts with a balance of 12,000 virtual currency units.
  • Event Registration: When students register for events, the event price is deducted from their account and added to the revenue of the club organizing the event.
  • Purchasing Items: When students buy items, the virtual currency is transferred to the vendor's account.
  • Revenue Management: Club revenues are displayed in a tabular format, showing the income from event registrations.

This setup ensures an efficient and user-friendly system for managing campus activities and transactions.

Technologies used

  1. React + Vite (frontend), Typescript
  2. Express (backend), Typescript
  3. MongoDB
  4. Redis
  5. React Hook Form
  6. React Query
  7. Node mailer
  8. Firebase (authentication)

Usage

For the installation,

npm install
npm install --prefix client
npm install --prefix server

For Development, run this in the root folder (sets up both the frontend and backend)

npm run test

For Production, run this in the root folder (builds the frontend and serves it with the backend)

npm run full

env

server/.env

# MongoDB configuration
MONGO=

# Redis configuration
REDIS=

# JWT secret
JWT=

# Firebase configuration
FIREBASE_TYPE=
FIREBASE_PROJECT_ID=
FIREBASE_PRIVATE_KEY_ID=
FIREBASE_PRIVATE_KEY=
FIREBASE_CLIENT_EMAIL=
FIREBASE_CLIENT_ID=
FIREBASE_AUTH_URI=
FIREBASE_TOKEN_URI=
FIREBASE_AUTH_PROVIDER_X509_CERT_URL=
FIREBASE_CLIENT_X509_CERT_URL=
FIREBASE_UNIVERSE_DOMAIN=

# Mail configuration
MAIL_PASSWORD=
MAIL_EMAIL=

client/.env

VITE_FIREBASE_API_KEY=
VITE_FIREBASE_AUTH_DOMAIN=
VITE_FIREBASE_PROJECT_ID=
VITE_FIREBASE_STORAGE_BUCKET=
VITE_FIREBASE_MESSAGING_SENDER_ID=
VITE_FIREBASE_APP_ID=
VITE_FIREBASE_MEASUREMENT_ID=

About

🎊 A fest management web app for college fests with virtual currency to buy event tickets and items, and features for their management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published