Skip to content
Snippets Groups Projects
README.md 2.06 KiB
Newer Older
Nadja Geisler's avatar
Nadja Geisler committed
# AK Planning

## Description

Nadja Geisler's avatar
Nadja Geisler committed
AKPlanning is a tool used for modeling, submitting, scheduling and displaying AKs (German: Arbeitskreise), meaning workshops, talks or similar slot-based events.
Nadja Geisler's avatar
Nadja Geisler committed

It was built for KIF (German: Konferenz der deutschsprachigen Informatikfachschaften), refer to [the wiki](wiki.kif.rocks) for more Information.


## Structure

This repository contains a Django project called AKPlanning. The functionality is encapsulated into Django apps:

Benjamin Hättasch's avatar
Benjamin Hättasch committed
1. **AKModel**: This app contains the general Django models used to represent events, users, rooms, scheduling constraints etc. This app is a basic requirements for the other apps. Data Import/Export also goes here.
1. **AKDashboard**: This app provides a landing page for the project. Per Event it provides links to all relevant functionalities and views.
1. **AKSubmission**: This app provides forms to submit all kinds of AKs, edit or delete them, as well as a list of all submitted AKs for an event.
Benjamin Hättasch's avatar
Benjamin Hättasch committed
1. **AKScheduling**: This app allows organizers to schedule AKs, i.e. assigning rooms, slots, etc. It marks conflicts of all modeled constraints and assists in creating a suitable schedule.
1. **AKPlan**: This app displays AKs and where/when they will take place for each event. Views are optimised according to usage/purpose.
## Setup instructions

See [INSTALL.md](INSTALL.md) for detailed instructions on development and production setups.

To update the setup to the current version on the main branch of the repository use the update script ``Utils/update.sh`` or ``Utils/update.sh --prod`` in production.

Afterwards, you may check your setup by executing ``Utils/check.sh`` or ``Utils/check.sh --prod`` in production.

## Developer Notes
* to regenerate translations use ````python manage.py makemessages -l de_DE --ignore venv````
* to create a data backup use ````python manage.py dumpdata --indent=2 > db.json --traceback````
* to export all database items belonging to a certain event use ````./Utils/json_export.sh <event_id> <export_prefix>  [--prod]````. The results will be saved in ````backups/<export_prefix>.json````