A web-based platform to manage academic operations for universities and colleges. It supports multiple roles (administrator, professor, student), academic structure (faculties, careers, subjects), enrollments, grading, and certificate generation.
- User authentication and roles (administrator, professor, student)
- Admin dashboard: CRUD for users, faculties, careers, subjects, final exams
- Assign professors to subjects and finals
- Student dashboard: subject and final exam inscriptions, grade tracking
- Professor dashboard: manage grades and view final inscriptions
- Regular student certificate generation (DOCX via docxtpl)
- Role-based access control
- Backend: Python 3, Django
- Frontend: Django Templates, HTML5, CSS
- Database: PostgreSQL by default (configurable via environment variables)
- Containerization: Docker + docker-compose
- Documents: docxtpl for generating certificates
academics/ # Academic models, forms, admin, tests
accounts/ # Auth views, login form, URLs
inscriptions/ # Subject and final exam enrollment models/admin
main/ # Django project settings, URLs, ASGI/WSGI
users/ # CustomUser, profiles, views, admin, templates
static/ # CSS, JS
templates/ # Base templates
docs/ # Diagrams and documentation assets
manage.py
requirements.txt
docker-compose.yml
Dockerfile
- Python 3.10+
- pip
- Docker (optional)
The app reads configuration from a .env file (loaded in main/settings.py).
Minimal variables:
SECRET_KEY=dev-secret
DEBUG=1
ALLOWED_HOSTS=localhost,127.0.0.1
# PostgreSQL settings (required)
POSTGRES_DB=sysacad_database
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
# Use `db` when running with docker-compose, or `localhost` if Postgres runs locally
DATABASE_HOST=db
DATABASE_PORT=5432- Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate- Install dependencies
pip install -r requirements.txt- Configure environment variables (dotenv is read in
main/settings.py)
Create a .env in the project root:
- Apply migrations
python manage.py makemigrations academics inscriptions users
python manage.py migrate- Create an admin user (Django superuser)
python manage.py createsuperuser- Run the development server
python manage.py runserver- Access the app at http://localhost:8000/
Build and start services:
docker compose up --buildStop services:
docker compose downNotes:
- Ensure
.envincludes database credentials and setDATABASE_HOST=dbfor docker-compose. - The
backendservice binds the project folder as a volume for development.
-
Admin:
- Manage users and their profiles (student, professor, administrator)
- Maintain faculties, careers, subjects
- Create and manage final exams
- Assign professors to subjects and finals
-
Student:
- Enroll in subjects and final exams
- See grades and eligibility for finals
- Download regular student certificate (template:
regular_certificate.docxat repo root)
-
Professor:
- View assigned subjects and finals
- Enter and update student grades
- View inscriptions for assigned final exams
- Home:
/ - Login:
/login/ - Logout:
/logout/ - Django Admin:
/django-admin/
Users app (role dashboards and admin UI):
- Admin dashboard:
/admin/dashboard/ - Users CRUD:
/admin/users/ - Faculties:
/admin/faculties/ - Careers:
/admin/careers/ - Subjects:
/admin/subjects/ - Finals:
/admin/finals/ - Student dashboard:
/student/dashboard/ - Student regular certificate:
/student/certificate/regular/ - Professor dashboard:
/professor/dashboard/
- Environment variables are loaded via
.env(seemain/settings.py) - Default database is PostgreSQL (see
DATABASESinmain/settings.py). For local Postgres, setDATABASE_HOST=localhost; for docker-compose, setDATABASE_HOST=db. - The regular certificate uses
docxtpland theregular_certificate.docxtemplate. Adjust placeholders in the template to match context variables inusers.views.download_regular_certificate.
Run the test suite:
python manage.py test- Code is documented with Google-style docstrings across apps.
- Optionally, you can add Sphinx to generate HTML documentation from docstrings.
GPLv3. See the LICENSE file for details.
-
Valentin Rubio
-
Pablo Geyer
-
Luciano Castro
-
Santiago Calzolari
-
Santiago Oses
-
ChatGPT (OpenAI)
-
Gemini (Google, antes Bard)
-
Copilot (GitHub/Microsoft)
-
Claude (Anthropic)
-
Alexa (Amazon)
-
Siri (Apple)
-
Cortana (Microsoft)
-
Replika
-
Perplexity AI
-
YouChat (You.com)
-
Pi (Inflection AI)
-
Jasper Chat
-
HuggingChat (Hugging Face)
-
My AI (Snapchat)
-
Chatsonic (Writesonic)