Small web application for managing courses: store students' grades, maintain deadlines, provide scoreboard etc.
For the students, Manytask
is an app that stores scores and shows progress though courses. For the teacher, Manytask
provides flexible interfaces to interact with Repository Management System, reveal tasks while the course progresses, set deadlines.
The full Manytask
setup includes:
- A database to store student scores
- Self-hosted Repository Management System instance (currently only GitLab is supported).
- A set of courses, each of which is represented by:
- Private repository - one per course - a teacher's repository that contains all the information on the course, including tasks, public and private tests, gold solutions, deadlines and testing environment, information on how to deploy the course. This repository contains all the data on the course, it is not visible by students.
- Public repository - a repository available to students with tasks and solution templates. This repository is derived from private repository: only public tests, task formulations and templates are exported, while teacher's solutions and private tests are not. Teacher can also control which tasks are exported and which are not.
- Group for students repositories - the group where Manytask will create repositories for students.
Each student will have their own repository, which is forked from public repository.
- CI/CD runners - where students' solutions will be tested
- Manytask Checker script - some script to test students' solutions and send scores/grades to the Manytask web application
- Manytask instance - web application managing students' grades and deadlines
So the main aims of Manytask:
- Store and manage students' grades (store, provide, show, edit, etc.)
- Show web page with grades and deadlines for student
- Manage users and repositories creation
Functions for which Manytask is NOT intended:
- Test students' solutions
- Be language/course specific
- Substitute for Learning Management System (LMS)
Originally was developed at gitlab as shad-ts by Fedor Korotkiy for Yandex School of Data Analysis.
The project would not be possible without an effort of many developers, including:
- Fedor Korotkiy - development of the very first version, 2017-2018
- Ilariia_Belova - updates for python course, 2018
- Vadim Mazaev - updates for python course, 2019-2020
- Nikita Bondartsev - minor updates for python course, 2020-2021
- Konstantin Chernyshev - updates for python course, massive refactor and moving to github, 2020-2024
Current developers:
- Sofia Anokhovskaya
- Olga Gorbunova
- Ivan Gorobets
- Ivan Komarov
- Alexander Kostrikov
- Daniil Maslov
- Alexey Seliverstov
- Oleg Shatov
- Artem Zhmurov
And many others! Please, see the full list of contributors.