Skip to content

[In-Progress] Open source Modular web application for conventions

Notifications You must be signed in to change notification settings

mriffey1/ConConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors LinkedIn

conconnect_logo.png
The Modular Convention Platform

Creation of Spring Boot web application utilizing Java. The purpose of this application is to create an open-source modular option for small conventions (such as comic conventions, gaming conventions, sci-fi, etc).

Current Status

  • In Early Development (as of March 8th, 2024)

Project Roadmap

This section details the current (and not exhaustive) list of planned features. The core concept is to allow easy setup with scalability without needing to understand the inner workings.

Introduction

This section documents the roadmap, including initial features, plugins, and any additional add-ons in the works.

Overall Vision

The goal is to create an open-sourced modular convention application with plugins for conventions and award sites.


Core Functionality

User Registration and Management
  • User Registration
    • User Creation (via REST API: POST /api/user)
    • User Login (via REST API: POST /api/auth/login)
    • User Password Encryption
      • Custom Username: Check to ensure the username does not exist (via REST API: GET /api/user/{username}/exists).
      • Create user in the database (via REST API: POST /api/user).
      • Hash password/security features.
      • Include user data fields: First Name, Last Name, Pronouns, Email Address, Password (with confirmation), Mailing Address, Phone Number.
      • Sign-up button to submit registration (triggers the REST API).
  • User Profile Maintenance
    • Profile landing page (via REST API: GET /api/user/{userId}).
    • Ability to change password, update pronouns, add/update profile picture (via REST API: PUT /api/user/{userId}).
    • Update mailing address and phone number (via REST API: PUT /api/user/{userId}/update-address).
  • User Roles
    • Add custom roles (via REST API: POST /api/user/roles).
    • Set permissions of custom roles (via REST API: PUT /api/user/roles/{roleId}/permissions).
    • Dropdown with roles and associated permissions (via REST API: GET /api/user/roles).
Convention Organizer Management
  • Assign Locations to Events
    • Manage and assign event locations (via REST API: PUT /api/event/{eventId}/location).
  • Assign Exhibitors to Booth Locations
    • Assign exhibitors to specific booth locations (via REST API: POST /api/exhibitor/{exhibitorId}/assign-booth).
  • Approve Events
    • Admin functionality for approving event requests (via REST API: PUT /api/event/{eventId}/approve).

Plugin Features

Events
  • Create Events (via REST API: POST /api/event)
  • Modify Events (via REST API: PUT /api/event/{eventId})
  • Delete Events (via REST API: DELETE /api/event/{eventId})
  • Electronic Event Tickets (via REST API: GET /api/event/{eventId}/tickets)
    • Attach electronic tickets to user badges (via REST API: POST /api/tickets/{ticketId}/attach-to-badge).
  • QR Codes for Event (Attendee)
    • Generate and manage QR codes for electronic tickets (via REST API: GET /api/event/{eventId}/qr-code).
  • Printed Event Tickets
    • Provide options for printing event tickets (via REST API: GET /api/event/{eventId}/print-tickets).
  • QR Code Scanner for Event (Organizers)
    • Dashboard for organizers to scan QR codes; ability to see who is still missing in real-time (via REST API: GET /api/event/{eventId}/attendees).
  • Payments
    • Integration with various payment systems for processing transactions (via REST API: POST /api/payment).

REST API Functionality

API Endpoints Overview
  • Users

    • GET /api/user - Get all users.
    • GET /api/user/{userId} - Get user by ID.
    • POST /api/user - Create a new user.
    • PUT /api/user/{userId} - Update an existing user.
    • DELETE /api/user/{userId} - Delete a user.
  • Authentication

    • POST /api/auth/login - Authenticate user credentials and return a token.
    • POST /api/auth/logout - Invalidate user session/token.
  • Events

    • GET /api/event - Get all events.
    • GET /api/event/{eventId} - Get event details by ID.
    • POST /api/event - Create a new event.
    • PUT /api/event/{eventId} - Update an event.
    • DELETE /api/event/{eventId} - Delete an event.
    • GET /api/search - Search for events based on specific fields and criteria.
      • Query Parameters:
        • entity: The type of entity to search (e.g., event).
        • field: The field to search (e.g., shortDescription).
        • contains: The value to search for (e.g., part of the shortDescription).
      • Example: /api/search?entity=event&field=shortDescription&contains=dog
  • Tickets

    • GET /api/event/{eventId}/tickets - Get tickets for an event.
    • POST /api/tickets/{ticketId}/attach-to-badge - Attach tickets to user badge.
  • Payments

    • POST /api/payment - Process a payment for an event or service.

Database

Database
  • Firebase Plugin (via REST API: interacts with Firebase for user and event data)
    • GET /api/event to retrieve events from Firebase.
    • POST /api/event to create a new event in Firebase.
  • MySQL Plugin (via REST API: interacts with MySQL for user and event data)
    • Similar endpoints available for MySQL-based operations.

Exhibitors

Exhibitor Management
  • Automated QR Code Creation (via REST API: POST /api/exhibitor/{exhibitorId}/qr-code)
  • QR Code Scanner (via REST API: GET /api/exhibitor/{exhibitorId}/scan)
  • Exhibitor Profile
    • View and manage exhibitor profiles (via REST API: GET /api/exhibitor/{exhibitorId})
    • Update exhibitor details (via REST API: PUT /api/exhibitor/{exhibitorId})
  • Tools and systems for managing exhibitor information and activities (via REST API: POST /api/exhibitor).

Awards

Awards Management
  • Categories (via REST API: GET /api/awards/categories)
  • Nominations (via REST API: POST /api/awards/{categoryId}/nomination)
  • Voting (via REST API: POST /api/awards/{awardId}/vote)

How can I help?

If you would like to contribute or provide feedback: please reach out by email below.

Gmail


Built With

Java REST API Spring Boot Firebase VS Code Maven JavaScript HTML5 CSS3

About

[In-Progress] Open source Modular web application for conventions

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published