Skip to content

Cysion/Secproject1

Repository files navigation

12stepsapp

An app built for the e-llipse project team for studying suicide prevention systems. Built as a web app using the django framework, 12stepsapp aims to help people struggling with suicidal ideation. 12stepsapp was built with the integrity and security of the user at its focus, providing a robust security framework to keep user data strictly confidential. Although secure in its own right the 12steps development team strongly advices AGAINST deploying this on a large scale as it was only built for a research study, not final deployment. 12stepsapp was developed by a team of students as a project at Blekinge institute of technology (Sweden).

Prerequisites

A mySQL compliant database is required to run the code unmodified, however all databases supported by django are indirectly supported by 12stepsapp

Installation

Installation instructions written for a Linux/UNIX system, installation on other systems might be similar, but will require some autonomy. After cloning this code repository, you chould set up the database and enter the details of the database into the conf/db.cnf file

[client]
database = database_name
user = database_user
password = database_user_password
default-character-set = utf8

After this is done, you should generate a new django secret key which you should paste into conf/secret_key.

After having setup surrounding dependencies, you should set up the virtual environment for the app. make sure you use python 3.8, or a later compatible version, as well as pip installed. Install python virtual environment manager with your package manager or with pip
pip install virutalenv
then use virtualenv to set up a virtual environment for the app python -m venv env
now, and in the future when launching the app, to use the environment
source env/bin/activate now being all set you can either use the makefile to set up the project (recommended)
make -f makefile all
or follow this step by step guide (not recommended):

update to the latest version of the repository and pip
git pull
pip install --upgrade pip
then install the required python libraries NOTE: the version on most python libraries have been FROZEN, you will have to upgrade them MANUALLY
pip install -r requirements.txt
then you have to use the built in django database construction feature
python manage.py migrate

Sessions

Since we are using session cookies and django dont clear expired session you need to set up an cronjob. To do this you set the argument clearsessions when running python script manage.py in projekt root folder. You need to run from the virutal enviroment you just created. Exampel

/home/kevin/Programmering/Projekt/env/bin/python /home/kevin/Programmering/Projekt/env/twelvesteps/manage.py clearsessions

This needs to be executed atleast once a day.

Deployment

There are a couple of things that are vital to the deployment of a django webserver. Refer to the django deployment checklist as our implementation deploys as standard.

Built With

  • Python - Language and dependency management
  • Django - The web framework used
  • MariaDB - Database used in development

Authors

Development team

  • Robin Lenz - Database designer and crypto system integrator - RobinLenz
  • Ludwig Wideskär - Designer and frontend developer - buggewe
  • Kevin Engström - Full stack developer and Django expert - kevinen98
  • Wilhelm Wickström - Code tester - willzone0
  • Joakim Karlsson - Tools and plugins developer and deployment manager - cysion

Project lead

  • Anna Baran - e-llipse project coordinator and contact person between the e-llipse team and development team

License

This project is licensed under the GNU General Public License version 3 - see the LICENSE.md file for details

Acknowledgments

  • We are not software developers nor security engineers, only students and the quality of the code will reflect that.
  • Inspiration
  • etc

About

8hp säkerhetsprojekt för EY

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published