Skip to content

Streamline event attendance management with AttendEase. Effortlessly generate and send unique QR-coded tickets to attendees. Implement a QR code scanner for seamless check-ins.

Notifications You must be signed in to change notification settings

aswinbennyofficial/attendease

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AttendEase

Streamline event management with AttendEase. Effortlessly generate and send unique QR-coded tickets to attendees. Implement a QR code scanner for seamless check-ins.

Features in progress

  • 1. Create an organisation account and allow login

    • Design and implement organization account creation functionality.
    • Implement login functionality for organization accounts.
  • 2. Create event and upload CSV file with name and email of participants

    • Develop event creation functionality.
    • Implement CSV file upload feature for participant details.
  • 3. Send invitation emails to all participants with QR ticket and event info

    • Set up email integration for sending invitations.
    • Generate QR tickets for participants.
    • Include event information in invitation emails.
  • 4. Create employee account inside the organisation for scanning QR

    • Implement employee account creation within the organization.
    • Set up login functionality for employees.
  • 5. Scan QR to mark attendance

    • Implement attendance marking logic.
  • 6. Get list of attended and missed in form of Excel

    • Create functionality to generate attendance reports.
    • Export reports to Excel format.

Routes

Health Check:

  • Endpoint: /health
  • Handler: controllers.HandleHealth

Private Endpoint (Requires Admin Login):

  • Endpoint: /private
  • Handler: controllers.HandlePrivate
  • Middleware: middleware.AdminLoginRequired

Admin Authentication and Authorization:

  • Sign in: /api/admin/login
  • Sign up: /api/admin/signup
  • Refresh token:/api/admin/refresh
  • Logout: /api/logout

Event Management:

  • Create event: /api/events (POST)
  • Get all events: /api/events (GET)
  • Get a specific event by ID: /api/events/{eventid} (GET)
  • Upload participants for an event: /api/events/{eventid}/participants (POST)
  • Middleware for these routes: middleware.AdminLoginRequired

Employee Management:

  • Create employee: /api/employees (POST)
  • Get all employees: /api/employees (GET)
  • Employee login: /api/employees/login (POST)
  • Middleware for these routes: middleware.AdminLoginRequired

Scanning:

  • Scan a participant: /api/events/scan (POST)
  • Middleware: middleware.LoginRequired

Participant Management in an Event:

  • Get all participants of an event: /api/events/{eventid}/participants (GET)
  • Get all participants of an event in a file: /api/events/{eventid}/participants/file (GET)
  • Send email to all participants of an event: /api/events/{eventid}/send (GET)
  • Middleware: middleware.AdminLoginRequired

Run In Postman

Dependencies

  • godotenv: Used for loading environment variables from a .env file.
  • mongo-driver: MongoDB driver for Golang.
  • jwt: Golang implementation of JSON Web Tokens (JWT).
  • bcrypt: A library for hashing and comparing passwords using bcrypt algorithm.
  • excelize : A library for manipulating excel sheets
  • amqp091-go : A library to implement queue using rabbitMQ
  • go-qrcode : A library to generate QR code

Installation

  1. Clone the repository:
git clone https://github.com/aswinbennyofficial/attendease.git
  1. Install dependencies:
go mod tidy
  1. Configure your environment variables by renaming .env.example into .env

Usage

Running the main application

go run ./cmd/main/

Start RabbitMQ

  • I am using Docker to run it
docker run --rm -it -p 15672:15672 -p 5672:5672 rabbitmq:3-management

Running email sender with workers

go run ./cmd/email_queue_consumer/

By default, the server will start on port 8080.

About

Streamline event attendance management with AttendEase. Effortlessly generate and send unique QR-coded tickets to attendees. Implement a QR code scanner for seamless check-ins.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages