/ezEMS

A simple, easy-to-use Event Management System [WIP]

Primary LanguagePHP

ezEMS

A simple, easy-to-use Event Management System

Demo

Demo available at https://ezems.captainirs.dev/.

Admin panel is at https://ezems.captainirs.dev/admin with email admin@admin.com and password password

Warning

The demo instance is seeded with fake data and is reset every 1 hour. All data will be lost.

Setup

Requirements

Installation

  1. Clone the repository

    git clone https://github.com/CaptainIRS/ezEMS.git
    cd ezEMS
    
  2. Install dependencies

    npm install
    composer install
  3. Copy the .env.example file to .env and fill in the required values

    cp .env.example .env
  4. Generate the application key

    php artisan key:generate
  5. Run the migrations

    php artisan migrate:fresh --seed --seeder=TestSeeder
  6. Start the NPM development server

    npm run dev
  7. In a new terminal, start the PHP development server

    php artisan serve
  8. Open the application in your browser at http://localhost:8000

Developing a skin plugin

  1. Clone the skin plugin repository to the plugins directory

    git clone https://github.com/CaptainIRS/ezEMS-default-skin.git plugins/ezems-default-skin
  2. Install the dependencies

    cd plugins/ezems-default-skin
    npm install
  3. Link the plugin to the application

    cd ../..
    npm link plugins/ezems-default-skin
  4. Run the NPM development server

    cd plugins/ezems-default-skin
    npm run watch

Features/Roadmap

  • One CMS instance per event, same CMS instance for multiple editions of the event UI skin would be an npm package, which can be customised for each year. The CMS would use the CSS components provided by the npm package. Every year, a new package will be released for the UI skin and the CDN link for importing the UI skin will be updated
  • Solid user profile integration
    • SSO/Federated login, with facility to attach multiple providers(like DAuth, Google, GitHub, Facebook, etc.) to the same account
    • Well-defined scopes to manage permissions
    • Can login with same profile into any event of the fest after registration, irrespective of whether the event is hosted in-CMS or as an external event
    • Public/private profiles
    • Public profile - display achievements, participations, scores, etc.
  • Editions
    • CRUD editions
    • CRUD clusters
    • CRUD categories
  • Venues
  • Events
    • Type: event, workshop, guest lecture, panel
    • CRUD events
    • Team creation, invites
    • Event has an FAQ page, details, links, registration fee payment, etc.
    • Event venue
    • Online certificate generation and download
    • Public leaderboard
    • In-CMS events - quizzes, document submission
    • Online/offline
    • Mail participants from past editions
    • Mail for reminders
    • Calendar entry for event
  • Announcements
  • News/newsletter
  • Campus Ambassador
  • Solid analytics to capture all interactions with the site, like visits to events, participation, activity, etc.
  • Powerful SEO
  • Audit logs to log activity of members with privileges
  • User roles:
    • Participant
    • Event manager
      • Manage participants (add/ban) Manage event pages, clusters
      • Set questions for quizzes or other in-CMS events
      • Edit/download leaderboard
      • View checklists for offline/online
      • View payment information, QR scan to verify payment
    • Content manager
      • Manage news/newsletter
      • Content of about page
    • WebOps
      • View analytics
      • View audit logs
      • Add/remove event managers, workshop managers
    • WebOps head
      • Add/remove WebOps members

Database Design

Database Design

License

This project is licensed under the MIT License.

(c) 2023 CaptainIRS