Giter VIP home page Giter VIP logo

fts-manager's Introduction

FTS Manager

A tool used to manage the FTS Seminar Series at Cardiff University's School of Computer Science and Informatics.

Installation

To install this package you will first have to install the dependencies recorded in requirements.txt. These dependencies can be installed through pip -r requirements.txt, note that pyldap has several external dependencies that need to be installed prior to install -- libsasl2, libldap2, and libssl (and associated development files) . These external dependencies can be installed through your distributions package manager, for example using sudo apt install libsasl2-dev libldap2-dev libssl-dev.

Please examine FTSManager/FTSManager/settings.py, ensuring that a fresh secret key is set, that email settings are correct, that STATIC_ROOT is set to a location that your web server is serving as /static/. Additionally, the hostname of the server needs to be added to the ALLOWED_HOSTS list.

Once dependencies are installed, and settings have been correctly defined (contained in the FTSManager/settings.py file) the database can be initialised by running python manage.py migrate, and static files can be collected for serving by running python manage.py collectstatic.

FTS-Manager can be run through with the command python manage.py runserver -- if everything is working as it should be, then visiting http://localhost:8000 in a web browser should serve you with a blank FTS manager home page.

The preferred method for serving FTS-Manager in production is using wsgi, using a server container such as uWSGI. Django provides a wsgi callable, accessible through FTSManager.wsgi. An example uWSGI command for FTS-Manager would be:

uwsgi --socket 127.0.0.1:31337 --chdir /path/to/folder/containing/this/file/FTSManager --wsgi-file FTSManager/wsgi.py --master --threads 8

(example chdir path is /home/user/FTS-Manager/FTSManager -- note that the FTSManager directory contains a subdirectory of the same name)

Having set up uwsgi, nginx/apache should be set up to proxy requests to 127.0.0.1:31337.

In order to populate FTS-Manager with LDAP users , please run python manage.py sync_ldap. This will pre-populate all users of type "Research Student" into Django's user database, allowing autocompletion of users who have not yet logged in.

The final step is to configure cron to execute FTS-Manager periodic tasks. This can be done by running the command python manage.py installtasks. This will install a nightly cron to sync ldap users, and a minutely cron to send reminder emails (where necessary). Check that crontab has been configured properly by running crontab -l -- you should see two new entries ending in #kronos :<string_of_hex>

Tools

In order to add users that are not marked as a "Research Student" in LDAP, the management commmand python mange.py add_user <username> can be used. Note that any user in the LDAP server is able to log in to FTS-Manager, and add_user is only needed for adding talks on behalf of users that have never signed in.

fts-manager's People

Contributors

josephredfern avatar rhodrim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fts-manager's Issues

Archive Page

An archive page listing past talks, with option to download slides etc.

{{user}} template variable is over-written on profile page

When viewing a user profile page, the {{user}} template variable is over-written, resulting in the incorrect active user being displayed in the upper right corner of the page.

The offending line is here: https://github.com/JosephRedfern/FTS-Manager/blob/master/FTSManager/events/views.py#L46 and changes will need to be made at the user profile template, here: https://github.com/JosephRedfern/FTS-Manager/blob/master/FTSManager/events/templates/user.html#L6

Menu System

Integrate django-menus, or perhaps just hard code it. Either way, we need a menu.

Automated Reminders

We can automagically post to the FTS mailing list reminding people of an impending talk/meeting.

Can also remind speakers in advanced, and to submit their abstract etc.

Python 3 Support

We should switch to using Python 3. Shouldn't be a big job, may just be interpreter swap. We're currently using python-ldap (which is py2 only) with django-auth-ldap, but it's compatible with pyldap which is py3 compatible.

Message Flashing

Should flash message to users to say things like "your talk is pending approval"

Youtube style access to event?

Suggestion: Add a primary key to the event that is a 32 char string, that then has routes to it such as ^/events/ [id] /action.
Makes it easier to share events in the automated emails that are to follow, and as long as permissions are checked on the views its makes the links easily shareable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.