/REMS-For-Organisations

🚀 Resources and Event Management System for student organizations/clubs. Bulk mailer, certificate generation and many more.

Primary LanguagePHPMIT LicenseMIT


CMS For Organisations

Responsive Resources and Event Management System for small organisations and clubs. Form Generator, Mailer, Certificate Generator and much more :)

Why are we doing it?

We are running a chapter (club) at our college. We organize 20+ events for our 1500+ participants. It was a tedious process to manually make forms, certificates, advertising via mail so we decided to automate that process. Any organization, clubs or institutions looking for a similar service can fork our project and tweak it according to their needs.

Getting Started

Prerequisites

What things you need to run the software:

  • A web server with PHP preferably Apache2.
  • A MySQL Database Server. (Done and tested on 10.4.8-MariaDB)

Installation

  1. Download the latest stable release from here
  2. Create and Import the Main Database dump for MySQL-MariaDB from here
  3. Create a Forms Database.
  4. Copy the files from this repository to a location in the root directory of the web server
  5. Rename member/secrets.php_ to member/secrets_.php
  6. Update your database credentials, databases names (Main and Forms) and API Keys in member/secrets.php and public/cds-public.php
  7. With your Web Server and MySQL server running, visit the site
    •  Default Username: admin
       Default Password: admin
      
  8. If any error occurs, check your configurations in member/secrets.php and public/cds-public.php and try again

Running REMS as a Docker stack (Experimental).

  • Installation guide for Docker and docker-compose.
  • Modify the default values in docker-compose.yml, docker/mysql/database.sql and docker/secrets_.php to your requirement.
  • By default, exposes to host port 8080. A krishnaalagiri/rems and mariadb container would be configured and deployed.
  • For only the first time, the stack needs to be restarted due initdb in database containers. From the second time, you can directly start the stack.
# From the root of the repository
docker-compose up -d
sleep 60
docker-compose restart

Features and Screenshots (Click to enlarge)

Tested on Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.11 with 10.4.8-MariaDB

Certificate Generation and Distribution System (CGDS)

A two-ended system (Both for admin and public) that'll automatically generate certificates and make them available for distribution. The admin will have to upload a Certificate Template and a CSV file with Participant Names, Position Awarded, and Event Name. The generated certificates would be later automatically made for distribution.

CDS Public (Collection) CDS Admin (Generation) Generated Certificates

Database Management

This is an interface for the databases that are used. The administrator can update, insert and delete values from any table of the databases without having to risk cluttering with the structure or format. The interface is made as generic possible to support future development and extensions.

Database Manager Modify Tuples If Error Occurs

Form Generation

This tool is used to generate forms for events. Initially, the specifications of the event must be selected and a form is generated with the designated fields and a table is automatically created in forms-db. The form also has built-in validation for all the fields (emails, URLs, etc) and Markdown support for event descriptions. Once the form is sent out, the entered values are updated in the database.

Form Generator Sample Generated Form

Bulk Mailer

The mailer can send automatically send emails to a specific mailing list. It supports HTML emails and comes with a pre-designed template. The parameters for the pre-defined template can be modified for the specifications of the organization. There is also a feature to create mailing lists to use with these mailers. A CSV of the emails and names has to be uploaded ana a mailing list is created.

Bulk Mailer Interface Mailing List Generator Sample Sent Mail

View Responses

To view all the Responses for generated forms with an option to download the responses as a CSV.

View Form Responses

Link Shortener

A link shortener that uses the short.io API to render shortened links for distribution. It can make shortened link either with a custom slug or can automatically generate slugs for links.

Link Shortener with short.io API

Dark Mode 🌙

Perhaps our most desired feature, it gives an option to toggle the page between dark mode and light mode. Saves your eyes in the night 👀

Dark Mode Preview

Authors

Krishnakanth Alagiri Mahalakshumi V
f f
@bearlike @mahavisvanathan

Outside Contributors

Contributors Profile Links PR
Dhiraj V dhirajv2000 #28

Acknowledgments

  • Hat tip to anyone whose code was used.

wave