All Projects → hpi-schul-cloud → schulcloud-server

hpi-schul-cloud / schulcloud-server

Licence: AGPL-3.0 License
HPI Schul-Cloud Core Server

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to schulcloud-server

schulcloud-client
HPI Schul-Cloud Client
Stars: ✭ 31 (-38%)
Mutual labels:  education, schools
Sonic Pi
Code. Music. Live.
Stars: ✭ 8,736 (+17372%)
Mutual labels:  education, schools
-meta
📗 For goals, architecture of the program, and how-tos.
Stars: ✭ 26 (-48%)
Mutual labels:  education
DeepLearning
This repository keeps track of my path towards understanding Deep Learning concepts (mainly with TensorFlow).
Stars: ✭ 69 (+38%)
Mutual labels:  education
fludget
Learn Flutter on Flutter! A widget directory with implementation samples!
Stars: ✭ 26 (-48%)
Mutual labels:  education
Cryptography-Guidelines
Guidance on implementing cryptography as a developer.
Stars: ✭ 15 (-70%)
Mutual labels:  education
ecs154a-winter20
Course files for ECS 154A in Winter Quarter 2020.
Stars: ✭ 30 (-40%)
Mutual labels:  education
powerup-iOS
PowerUp is an educational choose-your-own-adventure game that utilizes a users uploaded curriculum to empower pre-adolescents to take charge of their reproductive health. This is the iOS version of the game.
Stars: ✭ 38 (-24%)
Mutual labels:  education
python tour of data science
A Python Tour of Data Science
Stars: ✭ 28 (-44%)
Mutual labels:  education
daruma-backend
🎎 Shared Expense Manager (Backend) - NestJS+DDD+CQRS+Event Sourcing 🎎
Stars: ✭ 70 (+40%)
Mutual labels:  nestjs-backend
machine-learning-and-simulation
All the handwritten notes 📝 and source code files 🖥️ used in my YouTube Videos on Machine Learning & Simulation (https://www.youtube.com/channel/UCh0P7KwJhuQ4vrzc3IRuw4Q)
Stars: ✭ 93 (+86%)
Mutual labels:  education
teach-r-online
Materials for the Teaching statistics and data science online workshops in July 2020
Stars: ✭ 52 (+4%)
Mutual labels:  education
Lumi
Lumi is a Desktop App that offers a collection of tools to create, edit and share digital content with your class.
Stars: ✭ 55 (+10%)
Mutual labels:  education
Metatrader
Expert advisors, scripts, indicators and code libraries for Metatrader.
Stars: ✭ 99 (+98%)
Mutual labels:  education
algorithms-in-python
Some famous algorithms implemented in Python
Stars: ✭ 21 (-58%)
Mutual labels:  education
prezzy-vdom-example
👓 From my Youtube Video, "Let's Build a Virtual DOM from Scratch"
Stars: ✭ 58 (+16%)
Mutual labels:  education
WSCEP
SCTurkey Kadın Yazılımcı Destekleme Programı
Stars: ✭ 65 (+30%)
Mutual labels:  education
Resumos EMAP-FGV
Repositório de resumos do curso de Matemática Aplicada da FGV-EMAP
Stars: ✭ 23 (-54%)
Mutual labels:  education
icebreaker
Web app that allows students to ask real-time, anonymous questions during class
Stars: ✭ 16 (-68%)
Mutual labels:  education
algorithmic-awareness
Home for the IMLS Grant RE-72-17-0103-17 - “RE:Search” - Unpacking the Algorithms That Shape Our UX. Deliverables include a teaching curriculum, syllabi for a week-long workshop and semester-length course, an action handbook for teaching algorithmic awareness concepts, and a software prototype that demonstrates algorithms in action.
Stars: ✭ 25 (-50%)
Mutual labels:  education

HPI Schul-Cloud Server

Develop: Build Status Master: Build Status

Develop: codecov Master: codecov

Codacy: Codacy Badge

Version

NestJS application

Find the NestJS applications documentation of this repository at GitHub pages. It contains information about

  • setup & preconditions
  • starting the application
  • testing
  • tools setup (VSCode, Git)
  • architecture

Based on NestJS

Feathers application

This is legacy part of the application!

Based on Node.js and Feathers

Application seperation

In order to seperate NestJS and Feathers each application runs in its own express instance. These express instances are then mounted on seperate paths under a common root express instance.

Root-Express-App 
├─ api/v1/       --> Feathers-App
├─ api/v3/       --> NestJS-App

This ensures that each application can run its own middleware stack for authentication, error handling, logging etc.

The mount paths don't have any impact on the routes inside of the applications, e.g. the path /api/v3/news will translate to the inner path /news. That means that in terms of route matching each child application doesn't have to take any measures regarding the path prefix. It simply works as it was mounted to /.

However note that when URLs are generated inside a child application the path prefix has to be prepended. Only then the generated URLs match the appropriate child application, e.g. the path /news has to be provided as the external path /api/v3/news.

It is possible (not very likely) that the server api is called with URLs that use the old schema without a path prefix. As a safety net for that we additionally mount the Feathers application as before under the paths:

  • / - for internal calls
  • /api - for external calls

When these paths are accessed an error with context [DEPRECATED-PATH] is logged.

Setup

For more detailed setup instructions, take a look at setup. The whole application setup with all dependencies can be found in System Architecture. It contains information about how different application components are connected to each other.

Debugger Configuration in Visual Studio Code

For more details how to set up Visual Studio Code, read this document.

How to name your branch and create a pull request (PR)

  1. Take the Ticket Number from JIRA (ticketsystem.hpi-schul-cloud.org), e.g. SC-999
  2. Name the feature branch beginning with Ticket Number, all words separated by dash "-", e.g. feature/SC-999-fantasy-problem
  3. Create a PR on branch develop containing the Ticket Number in PR title
  4. Keep the WIP label as long as this PR is in development, complete PR checklist (is automatically added), keep or increase code test coverage, and pass all tests before you remove the WIP label. Reviewers will be added automatically. For more information check our Definition of Done here.

Committing

Default branch: develop

  1. Go into project folder
  2. Checkout to develop branch (or clone for the first time)
  3. Run git pull
  4. Create a branch for your new feature named feature/SC-Ticket-ID-Description
  5. Run the tests (see above)
  6. Commit with a meaningful commit message(!) even at 4 a.m. and not stuff like "dfsdfsf"
  7. Start a pull request (see above) to branch develop to merge your changes
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].