Skip to content

albingcj/waitlist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Waitlist Management Platform

Overview

This project is a waitlist management platform developed using the PHP stack and MySQL. The platform allows users to view and interact with waitlists, join them, and receive alerts when their products are available for them. It also incorporates a referral system, user points, and an admin panel for managing products and waitlists. Using DataTables for providing better controls for the Admin for viewing data.

Installation

  1. Clone the repository: git clone https://github.com/albingcj/waitlist.git
  2. Create a database with name waitlist and then, import the waitlist.sql database schema into MySQL.
  3. Customize any other configuration files as needed.

Usage

  1. Start XAMPP apache & sql servers.
  2. Open the http://localhost/waitlist/ page to view and interact with waitlists.
  3. Log in to register for a waitlist.
  4. Share the referral link to earn extra points.
  5. Admin can manage waitlists and products through the admin panel.
  6. Currently the admin
mail : admin@waitlist.com
password : Admin@1

Features

  1. Waitlist Overview:

    • All waitlists are available for public viewing.
    • Users can see joined and other active waitlists separately.
  2. User Registration:

    • Users need to log in before registering for a waitlist.
    • If not logged in, a login alert will prompt users before registration.
    • After registration, users will be provided with their specific referral links.
  3. User Points System:

    • Upon joining, users receive 100 points.
    • Users can share a unique link or ID to invite others.
    • Referrals result in additional points for the referrer.
  4. Admin Panel:

    • Admin can add, modify, and change the visibility of waitlists.
    • Admin can set the number of products to be shipped.
    • Each new waitlist created by the admin results in the creation of a specific table for it.
    • Admin can view the entire waitlist of people irrespective of sending the link mail
  5. Database Schema:

  • Accordion Table:

    • id (table id, primary key)
    • name (name of the product)
    • subhead (a short description of the product to show on accordion, less than 255 letters)
    • type (unique code for the product generated by the company)
    • content (description of the product)
    • image (url to image path)
    • total (joined count)
    • queue (currently last on the queue)
    • status (open or close status)
  • Admin Table:

    • id
    • name
    • password
  • Table + (Product ID) Table:

    • id (primary key)
    • userid (joined user id)
    • name
    • count (referral points)
    • flag (to show if the mail is sent or not)
  • Userlist Table:

    • id (user id)
    • joinedtables (comma-separated values of table ids which the user is joined)
  • Users Table:

    • id
    • name
    • email
    • password
  1. Persistent User Login:

    • Users only need to log in once; their information is stored for future registrations.
  2. Email Notifications:

    • PHPMail service is used for sending email notifications.
    • Admin email is hardcoded into the system.
    • If you wan't to specify yours change
      dummygcj@gmail.com -> to your mail id
      also create a App password for that email by refering google and enter it in the place of password
      
    • When a product is available, a mail is generated to the user with a link to buy the product. (Note: Link is currently a dummy.)
  3. Performance Optimization:

    • Each new waitlist creation results in a specific table, reducing search time and improving performance.
    • Userlist table updates efficiently by appending values to the existing comma-separated values.
  4. Technologies Used:

    • PHP
    • HTML
    • JS
    • jQuery
    • MySQL
    • SweetAlert2
    • phpmailer
    • DataTables

Developer

  • Albin George C J

About

Waitlist application - cartrabbit drive task.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published