An onboarding platform designed to help new employees integrate smoothly into a company, built with Django, PostgreSQL, and Docker.
If your migrations fail to apply or you encounter inconsistent migration history, you may need to reset the PostgreSQL database completely.
To do this, remove the entire Postgres Docker volume (
docker compose down -v
docker compose up -dAfter bringing the containers back up, re-run your migrations:
docker compose exec web python manage.py migrategit clone https://devtools.wi.pb.edu.pl/bitbucket/scm/th2025gr1/onboaarrrd.git
cd OnboAArrrdIf you want to automatically push to both Bitbucket and GitHub,
you need to update your local .git/config file.
You can either edit .git/config manually or use the command line.
Option A β Command line
git remote set-url --add --push origin https://devtools.wi.pb.edu.pl/bitbucket/scm/th2025gr1/onboaarrrd.git
git remote set-url --add --push origin https://github.com/uxabix/Django-OnboAArrrd.gitOption B β Manual edit
Open .git/config and make sure the [remote "origin"] section looks like this:
[remote "origin"]
url = https://bitbucket.org/your-university/onboaarrd.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = https://devtools.wi.pb.edu.pl/bitbucket/scm/th2025gr1/onboaarrrd.git
pushurl = https://github.com/uxabix/Django-OnboAArrrd.gitRun:
git remote show originYou should see two Push URLs β one for Bitbucket and one for GitHub.
Now, every time you push:
git push --allGit will automatically send all branches and commits to both repositories π―
Copy .env.example to .env:
cp .env.example .envRun containers:
docker compose up --buildAvailable services:
- Django + Channels: http://localhost:8000
- Admin panel: http://localhost:8000/admin
- PostgreSQL: http://localhost:5050/
Run migrations:
docker compose exec web python manage.py makemigrations
docker compose exec web python manage.py migrateCreate a superuser:
docker compose exec web python manage.py createsuperuserdocker compose exec web python manage.py collectstaticAll commands should be executed inside the web container. Examples:
docker compose exec web python manage.py shell
docker compose exec web python manage.py makemigrations
docker compose exec web pytest -v docker compose downThis project provides modular seeding scripts for populating the database with test data. The seeds cover both accounts and onboarding applications and can be run individually or all together. The scripts are designed to be configurable by the number of records to create.
All seed commands are implemented as Django management commands under core/management/commands/seed.py. You can run the seeders with:
python manage.py seed <seeder_name> [--count ]
<seeder_name>: The name of the seeder module to run (see the list below).--count <number>: Optional parameter to control how many records to create. Default is10.
To run multiple seeders sequentially:
python manage.py seed roles users badges competency_paths tasks quizzes user_paths user_tasks task_status reports user_grades messages --count 10
rolesβ creates roles in the system (e.g., Mentor, Student).usersβ creates test users, assigns them to theTestUsersgroup, and links students to mentors.
badgesβ creates badges.competency_pathsβ creates competency paths.task_typesβ creates task types (text, quiz, etc.).tasksβ creates tasks for competency paths.quizzesβ creates quizzes, questions, and answers linked to tasks.user_pathsβ assigns competency paths to users.user_tasksβ assigns tasks to users with deadlines andassigned_byreferences.task_statusβ creates multiple statuses for each user task.reportsβ generates reports between users.user_gradesβ assigns grades to completed tasks.
messagesβ creates messages between the user and his mentor in the system.
Run all seeders:
docker compose exec web python manage.py seed Create 10 roles:
docker compose exec web python manage.py seed roles --count 10Create 50 users and assign them to the TestUsers group:
docker compose exec web python manage.py seed users --count 50Create tasks and related quizzes:
docker compose exec web python manage.py seed tasks quizzes --count 100Generate user paths, tasks, and task statuses:
docker compose exec web python manage.py seed user_paths user_tasks task_status --count 5Generate reports and grades:
docker compose exec web python manage.py seed reports user_grades --count 20You can remove all data related to users in the TestUsers group using the clear_test_data management command. This is useful if you want to reset the test data without affecting real users.
Run the command:
docker compose exec web python manage.py clear_test_dataThis will delete:
- All
CustomUserinstances in theTestUsersgroup - Related onboarding data, including:
User_badgesUser_pathsUser_tasksTask_statusReportsUser_grade
The command uses a database transaction to ensure all related data is removed safely.
- Seeders are modular: you can run each one independently in any order, but some depend on others. For example:
usersdepends onroles.tasksdepends oncompetency_pathsandtask_types.quizzesdepend ontasks.user_tasksdepends onusersandtasks.
- All seeds are deterministic (no Faker) and produce repeatable results.
- You can modify the
--countargument to generate more or fewer records depending on your testing needs.
Seeding scripts allow you to quickly populate the database with realistic test data across all models in accounts and onboarding. Use the modular commands or run them all sequentially for a full setup.
- Django, Channels
- PostgreSQL
- Docker
- GitFlow
- Sphinx
Early development stage.
See ROADMAP.md for the roadmap.
No license yet. All rights reserved by the authors.