Ritta is a modular student information system developed using modern technologies. With Ritta schools can communicate to parents and students easily and have one place where to find information, eg. exams, grades, schedules and room & device reservations.
Current solutions available in Finland are old, difficult to use and don't adapt easily to special needs. The education space changes every year, and new solutions are needed. Ritta plans to integrate to existing ecosystems (Moodle, Google Workspace, DigiOne), but also create it's own for schools that aren't part of a existing ecosystem, but still want to easily integrate to other systems.
For running Ritta you must have NodeJS 16, Yarn Classic, Docker and docker-compose installed.
Easiest way to start the dependencies is to run environments/local/start-docker.sh
in the root of the project.
First, install the dependencies by running yarn install
.
Then, you can start the project by opening a shell in each of the directories in the apps
directory, and then run the yarn start:dev
command, or the yarn dev
for the frontend.
Alternatively, you can run npx turbo run start:dev
to start the backend, and go then start the frontend by going to apps/web
and running yarn dev
.
We use Microservice architecture and the NestJS framework for the backend, and for databases we primarily use MongoDB. Other databases may be used for specific microservices. We are going to use Novu for notification management and PostHog for product analytics in the future. Our frontend is built using Vite and Mantine. For dependency management we use Yarn with Yarn Workspaces. We provide REST and GraphQL APIs for developers.
API documentation can be viewed by going to https://<ritta-server url>/docs
.
Found something or got an idea you would like to share?
For minor bugs and suggestions use issues.
For security problems and bigger bugs, please follow procedures in SECURITY.md
Contributions are always welcome!
See CONTRIBUTING.md
for how to contribute.
Contact us at [email protected] or alternatively on our Discord server (Link in the at the top)!