GithubHelp home page GithubHelp logo

generalgeki / pyophase Goto Github PK

View Code? Open in Web Editor NEW

This project forked from d120/pyophase

0.0 1.0 0.0 1.92 MB

Management software for organizing an introductory week.

License: GNU Affero General Public License v3.0

Python 73.80% HTML 22.40% CSS 0.71% JavaScript 0.99% Shell 0.66% TeX 1.44%

pyophase's Introduction

pyophase

Build Status Requirements Status Coverage Status Code Climate

pyophase is our management application used for organizing an introductory week for new students. Such an introductory week is called Ophase.

Development

Some Notes

Please keep the following things in mind:

  • Objects which are relevant for only one Ophase should have a foreign key referring to this Ophase. This allows deleting all data associated to a specific Ophase by removing this single object.
  • Create and commit migrations after the database scheme changed (e.g. model changes). ./manage.py makemigrations
  • Recreate, (maybe translate) and commit message files after a string is introduced or changed. cd changed-app && ../manage.py makemessages
  • From time to time, look for new versions of the dependencies, listed in requirements.txt and bower.json, test them and commit updated files.
  • When new major functionality is introduced, briefly explain it in DOCUMENTATION.md.

Development Setup

A quick development setup is usually easier than a full deployment. Just do the following to get a local instance running.

git clone THIS_REPO
cd pyophase
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
bower install
./manage.py compilemessages
./manage.py migrate
./manage.py createsuperuser
./manage.py runserver

Deployment

Installation

  • Install python3, python3-pip, virtualenv and bower (the latter probably via npm)
  • Maybe create a user for the WSGI applications (e.g. pyophase)
  • Clone this repository into a proper directory (e.g. /srv/pyophase)
  • Create MySQL database and proper user
  • Create the file pyophase/settings_secrets.py and fill it with the credentials needed in settings_production.py
  • Create a virtualenv (e.g. virtualenv -p python3 venv)
  • For serving WSGI applications, one can install uwsgi, create an ini file under /etc/uwsgi with a proper configuration and configure the webserver to use mod-proxy-uwsgi to make the application accessible. The webserver should also serve the static files. Make sure the application server (uwsgi) sets the proper environment variable for production settings (DJANGO_SETTINGS_MODULE=pyophase.settings_production).
  • Run all the relevant commands from the Updates section

Updates

When manually executing manage.py commands in production, do not forget to either pass the --settings pyophase.settings_production flag oder set it as an environment variable like export DJANGO_SETTINGS_MODULE=pyophase.settings_production.

To update an instance of pyophase, one can use the included update script script/update.

For production instances, one should use something like sudo -u pyophase script/update --prod.

Usage

A documentation (in German) for users of pyophase is available in DOCUMENTATION.md.

Data Privacy

During the organizational work, it is unavoidable to store certain data, some of which is related to individual persons. pyophase is designed in a way such that it is easy to delete all the data after it is no longer needed. The head of Ophase is told to delete this data as early as possible.

License

Files in pyophase are licensed under the Affero General Public License version 3, the text of which can be found in LICENSE-AGPL.txt, or any later version of the AGPL, unless otherwise noted.

pyophase's People

Contributors

exploide avatar ckleemann avatar jlauinger avatar bhaettasch avatar requires avatar chriswars avatar geislern avatar miterion avatar luelista avatar

Watchers

Verplant avatar

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.