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:schoolnews:accounttimetable:schooldiary:school,account,timetablenotebook: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_configis included to thePATHvariable. -
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.pyand set up the project:- Update
SECRET_KEYif necessary. - Set
DEBUG = Truefor debugging mode. - Configure database connection in
DATABASESsection. - Optional: configure interaction with mail server.
- Optional: include password validators if necessary in
AUTH_PASSWORD_VALIDATORSvariable. - Select preferable locale in
LANGUAGE_CODEand configureTIME_ZONE. More about time zones here. - Optional: set up number of articles that will be loaded by client in
LATEST_NEWS_COUNTvariable.
- Update
-
Run
prepare_db.pyin 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
venvis not needed anymore:deactivate
This project uses Redoc for generating documentation from OpenAPI definitions.
- Run server.
- Go to
http(s)://your.domain/redoc/.