- TypeScript 86.2%
- HTML 11.7%
- SCSS 2.1%
| .vscode | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| .prettierrc.json | ||
| angular.json | ||
| LICENSE.txt | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.spec.json | ||
Bear in Mind | Angular
The Bear in Mind is a free open-source LMS (learning management system). This is the Angular frontend integrated with backend microservices.
Demo
You can run this application without setting up backend microservices. All you need to is run the following command:
ng serve --configuration mock
You can log in to any user defined in the mock-user-data.ts file. Each user's password is password.
Optional modules
In Bear in Mind, we care about modularity, and thus the ability to run only the microservices you need. All modules are enabled by default in the frontend application. To disable one of them, all you need to do is to edit the environment file for each configuration according to the table below.
| Module | Enabled | Disabled |
|---|---|---|
| Evaluation | evaluationApiService: EnabledEvaluationApiServiceEnabledModule.evaluation = 1 |
evaluationApiService: DisabledEvaluationApiServiceEnabledModule.evaluation = 0 |
Security
Authorization
Application authorization is done using cookies with the Secure and HttpOnly flags set. This makes JavaScript unable
to access the user's token, instead the browser is responsible for its storage and use.
Sending passwords
Passwords sent during signing up and logging in are hashed with the SHA-256 algorithm. We have decided on such a solution not to use the user's plaintext password at any stage of communication, not even over HTTPS. However, bear in mind that this approach must be consistent for each of your Bear in Mind frontend, otherwise the user may have problems logging into their account.
If you wish to opt out of client-side hashing, you can do so without significant security impact as passwords are additionally hashed server-side.
Project status
We are currently at the MVP (minimum viable product) stage. New features are already designed, and we are actively implementing them. At the moment, we do not have a planned production release date.
Contribution
Your contribution is welcome and we appreciate it. 💝 Before you start, please make sure you have read the information for contributors.
Code of Conduct
This project is governed by the Bear in Mind Code of Conduct. By participating, you are expected to uphold this code of conduct.
License
Bear in Mind Angular is released under the Apache 2.0 License.
Attribution
Illustrations
All illustrations by storyset on Freepik.
Photos
- Login page background: Photo by Vadim Sherbakov on Unsplash
- Course placeholder: Photo by Aaron Burden on Unsplash
- User group placeholder: Photo by The Climate Reality Project on Unsplash
- Java course: Photo by Nathan Dumlao on Unsplash
- Spring Framework course: Photo by Joel Holland on Unsplash
- React course: Photo by Leonhard Niederwimmer on Unsplash
- PostgreSQL course: Photo by atwena Goodman on Unsplash
- Docker course: Photo by Swanson Chan on Unsplash
- Kubernetes course: Photo by Joseph Barrientos on Unsplash
- Gamification in Education course: Photo by Igor Karimov on Unsplash
- English course: Photo by Charles "Duck" Unitas on Unsplash
- Administrators user group: Photo by Kevin Ku on Unsplash
- Teachers user group: Photo by ThisisEngineering RAEng on Unsplash