CMS
Club Management System (CMS) is django-based web-app which lays framework for the amfoss website, the amfoss webapp, and the amfoss app.
💽 Installation Instructions
The portal is primarily a django based application, and to set it up we require to have python environment with django and other project dependencies installed. Though one can work with the project without an virtual environment, it is recommended to use one so as to avoid conflicts with other projects.
-
Make sure that you have
Python 3
,python-3-devel
,gcc
,virtualenv
, andpip
installed. -
Clone the repository
$ git clone https://github.com/amfoss/cms.git $ cd cms
-
Create a python 3 virtualenv, and activate the environment.
$ virtualenv -p python3 . $ source bin/activate
-
Install the project dependencies from
requirements.txt
$ pip install -r requirements.txt
You have now successfully set up the project on your environment. If you encounter any problems during installation, you can refer to installation page on our wiki.
After Setting Up
From now when you start your work, run source bin/activate
inside the project repository and you can work with the django application as usual -
python manage.py migrate
- set up databasepython manage.py createsuperuser
- create admin userpython manage.py runserver
- run the project locally
Make sure you pull new changes from remote regularly.
🚀 Data Models
🎉 Activities
The activity app tracks the activities of the club members.
- Certificates - carries certificates recieved by club members, also allows to upload them as attachments.
- Courses - records courses completed by club members, includes link to certificate.
- Events - logs events attended by student members such as Conference, Hackathons, Internships, Exchange Programmes etc.
- Honours - records achievements and honours recieved by club members, includes link to project, certificate.
- Projects - holds projects of the club, club teams and club members
- Publications - records publications made by club members
- Talks - records talks given by club members
👧 Members
The members app manages the profile and data of the club members
- Groups - manages groups inside the club
- Leave Records - records and manages the leave requests of club members
- Mentor Groups - manages mentor-menteee relationship of club members
- Profiles - manages the member profile
- Responsibilities - manages the various responsibilities held by a group of members
- Teams - manages the various internal teams inside the club
📨 Status
The status app manages the reporting system in the club
- Log - holds status updates posted by members, under different threads, for various subjects.
- Thread - manages status update threads
💫 API
The amFOSS CMS ships with GraphQL-based APIs. To help developers, GraphiQL, a tabbed interface (playground) for editing and testing our GraphQL queries/mutations, also has been furnished .
Documentation on the supported APIs has been provided in the wiki page.
📡 Integrations
- Attendance Module - the amFOSS attendance module is a raspberry-pi which live records the attendance of club members when they are in the FOSSLab. The AmFOSS CMS fetches attendance details from it and logs it.
- Telegram Bot - the amFOSS Telegram Bot is the bot assistant of the amFOSS Telegram group. The AmFOSS CMS triggers the bot to send notifications, statistics etc. to the group.
- GitHub - Integrates with GitHub to actively track the FOSS contributions made by club members
🔧 Tech Stack
- Language: Python 3.7
- Framework: Django 2.2
- API: GraphQL (Graphene + JWT)
💎 Contributors
Developed with
- Ashwin S Shenoy - Core Developer, Maintainer
How to Contribute?
- Fork the repository, clone it locally and run it following the installation instruction above.
- Find an issue or feature to work on, and put up an issue.
- Work on the patch or feature, test it and send a pull request referencing the issue.
✒️ License
This repository is licensed under GNU General Public License V3. Though it was tailor-made for amFOSS, you are welcome to adapt it, make it yours. Just make sure that you credit us too.