Schoolmate is a school management software designed to automate a school's diverse operations from classes to school events. This management system contains various features to effectively record, manage and process data, and consists of the following modules:
-
School application describes, in general, model of a school: its inner structure, study hours, school year, etc. This application is mandatory.
-
Account provides authentication and user's profile management. Uses standard Django's components for this purpose.
-
News. This application manages news articles that are displayed on main page.
-
Timetable app is used for structuring timetable of a school year.
-
Diary app represents diary of a school student, it stores student's everyday records as well as personal adjustments in timetable.
-
Notebook is an application used for creating and storing notes in HTML format.
school
: no dependenciesaccount
:school
news
:account
timetable
:school
diary
:school
,account
,timetable
notebook
:account
- English
- Deutsch
- Русский
- Compact
- Contrast
- Flat
- Material
- Mini
- Python 3.8 or higher
- Database management system:
- SQLite (not recommended)
- PostgreSQL 9.6 or higher
- Packages listed in
requirements.txt
- Optional: mail server
-
If you're planning to use PostgreSQL, be sure, that the directory containing
pg_config
is included to thePATH
variable. -
Clone schoolmate repository:
git clone https://github.com/kolyat/schoolmate.git cd schoolmate
-
Create virtual environment for project and activate it (for more information visit this guide):
virtualenv -p /usr/bin/python3.8 venv source venv/bin/activate
-
Install requirements:
pip install -r requirements.txt
-
Open
./schoolmate/settings.py
and set up the project:- Update
SECRET_KEY
if necessary. - Set
DEBUG = True
for debugging mode. - Configure database connection in
DATABASES
section. - Optional: configure interaction with mail server.
- Optional: include password validators if necessary in
AUTH_PASSWORD_VALIDATORS
variable. - Select preferable locale in
LANGUAGE_CODE
and configureTIME_ZONE
. More about time zones here. - Optional: set up number of articles that will be loaded by client in
LATEST_NEWS_COUNT
variable.
- Update
-
Run
prepare_db.py
in order to create database and it's structure. -
Create superuser:
manage.py createsuperuser
-
Run development server with
manage.py runserver
-
Do not forget to deactivate virtual environment after server shutdown if
venv
is not needed anymore:deactivate
This project uses Redoc for generating documentation from OpenAPI definitions.
- Run server.
- Go to
http(s)://your.domain/redoc/
.