GithubHelp home page GithubHelp logo

rittaschool / ritta Goto Github PK

View Code? Open in Web Editor NEW
46.0 46.0 6.0 75.02 MB

Modular open source learning/student management system built with TypeScript and NestJS.

Home Page: https://ritta.fi

License: Other

JavaScript 1.35% TypeScript 97.44% Dockerfile 0.25% Shell 0.75% HTML 0.13% CSS 0.07%
docker hacktoberfest hacktoberfest-accepted koulu messaging nestjs nodejs reissuvihko ritta school turborepo

ritta's People

Contributors

dependabot[bot] avatar imgbot[bot] avatar imgbotapp avatar kymppi avatar raikasdev avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ritta's Issues

Library

Add support for keeping list of books in the library, who has loaned them, etc.

Instance info

Instance info (/v1/info) should show details about the instance, probably at least instance name (for login page), enabled auth strategies (and their extra info), for logged in users enabled modules and other info.

Write E2E tests

Is your feature request related to a problem? Please describe.
Write end to end tests for ritta with microservices to catch some error we might not have though of.

Describe the solution you'd like
I want someone to write end to end tests for ritta-server. I will be the one to do it anyway.

Describe alternatives you've considered
This is something that we must do to ensure that the code works.

Integration: Google Classroom

Integration to the Google Classroom platform.
Not done research on the Google Classroom APIs, will probably soon.
At least starting Google Meets, checking if you have done all the tasks, inviting students to groups automatically?

Switch to pnpm from Yarn

Is your feature request related to a problem? Please describe.
Some problems with turborepo and yarn

Describe the solution you'd like
switch to pnpm

Describe alternatives you've considered

Additional context

Add logging

Is your feature request related to a problem? Please describe.
We must have logging

Describe the solution you'd like
I want to add grafana/loki docker image to the docker-compose. And in the future when we will use the cloud, lets use loki by grafana labs.

Describe alternatives you've considered
None

Additional context
WE MUST HAVE A CENTRALIZED LOGGING SYSTEM

More tests

Please add more tests, its just oddly satisfying to see lot of green PASS marks

Roles

Add support for customizable roles.
Role 0 should be root/admin.
If a "guest" role (no role yet) should be added, probably id -1.

Integration: Moodle

Somekind of integration to the Moodle platform.
I have not researched what kind of integrations could be done (yet).

Start using nestjs, instead of normal fastify

For me atleast, i think it would be easier to maintain with use of nestjs. It would allow you to use decorators and depedency injection. Of course you could do this without nestjs, but with nest its easier.

Permissions

Add support to add permissions to roles and then be checkable for modules by user. Restrict usage to specific places by permissions.
Related #33

Build frontend mockups

Frontend mockups (in the application) will give us something to show, even if they don't function with the API.
Also set limits, so we don't add features that aren't needed, and that cannot fit into the UI.

Why?
Read this chapter from Getting Real

Surveys

Add support for adding surveys that a specific user group can answer.

Fix Tests

I have been trying to fix the tests for a while now, but I'm not sure how to do it.

Modularity and SDK

Add support for modules and move messaging and Opinsys auth to own modules.

Also SDK needed for this.

Consider rewriting in Rust

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Update docker-compose files for development

Describe the bug
Update the docker-compose files cuz something is deprecated

To Reproduce
run ./environments/local/start-docker.sh

Expected behavior
no warnings

Screenshots
image

System information
What system are you running Ritta on?

Additional context
Add any other context about the problem here.

Fix Tests

I have been trying to fix the tests for a while now, but I'm not sure how to do it.

Printing service

Printing service (Tulostuspalvelu) allows users to print different things, as documents, schedules, reservations and other things.

The printing service should only handle the generating of the printable (pdf?), and then pass it back.
Multi-template support?

Permission checks of the prints should be done by the service layer.

Rooms

Add support for rooms that groups and teachers can reserve for lessons

Implement Messages

Implement thread messages for Ritta. Use bluemonday for sanitization.

Migrate to vlid.js

I recommend switching to vlid.js for optimizing purposes. It is a similar library, but 10x smaller and better for as an example the frontend where the 140kb of joi would be packed into our JS file, thy making loading times longer.

Admin area

The admin area (Ylläpitoalue) is a suite of functions for maintaining the instance, configuring, creating new users and other things.

The API endpoints should probably be /v1/admin/ prefixed.

Use JWT tokens for authentication

I recommend using JWT tokens with cookies for authentication. Then if auth service is down, other services can still verify the token.

Cant run it

Excuse if I'm being dumb but when I run ./scripts/start-docker.sh it gives me a bunch of these errors

src/users/users.service.ts:13:8 - error TS2307: Cannot find module '@rittaschool/shared' or its corresponding type declarations.
gateway_1   | 
gateway_1   | 13 } from '@rittaschool/shared';

OR when I docker-compose up it gives me this error

=> CACHED [builder 4/6] RUN yarn global add turbo                                                                                                                        0.0s
 => [builder 5/6] COPY . .                                                                                                                                                0.3s
 => ERROR [builder 6/6] RUN turbo prune --scope= --docker                                                                                                                 0.5s
------
 > [builder 6/6] RUN turbo prune --scope= --docker:
#12 0.471  ERROR  at least one target must be specified
------
executor failed running [/bin/sh -c turbo prune --scope=${SCOPE} --docker]: exit code: 1
ERROR: Service 'gateway' failed to build : Build failed

😬😬😬

FIDO2 Auth

Add support for strong Yubikey auth, able to skip MFA.
Into Ritta Core, SDK strategies are meant for Oauth2 like strategies.

Every other request to /v1/users returns 503

Describe the bug
When making GET request to /v1/users it returns every other time 503 and every other the actual data

To Reproduce
Make requests

Expected behavior
It should always return the data

System information
Docker for Ubuntu 20.04

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.