diff --git a/end-user.md b/end-user.md new file mode 100644 index 0000000..6c70778 --- /dev/null +++ b/end-user.md @@ -0,0 +1,22 @@ +# LearningPulse End-User documentation + +## Contents + +- [What is LearningPulse](#learningpulse) +- [Features](#features) + +# LearningPulse + +_[go to top](#contents)_ + +Learning Pulse is an innovative learning platform that blends the strength of Redmenta and Google Classroom to create a collaborative educational environment. +The objective is to provide a comprehensive feature package, aiming to incorporate as many elements as possible while maintaining focus on stability. The feature list includes interactive quizzes, dedicated classrooms and assignments, designated study and file-sharing drives +for students, and administrator panels for school head + +# Features + +_[go to top](#contents)_ + +## Classroom + +Upon entering the platform this is the first thing end-user will see diff --git a/readme.md b/readme.md index 812e419..45ab94b 100644 --- a/readme.md +++ b/readme.md @@ -1 +1,132 @@ -# LearningPulse documentation +# LearningPulse software documentation + +## Contents + +- [Abstract](#abstract) +- [Feature set](#feature-set) + - [Classroom](#classroom) + - [Assigment list](#a-list-of-assignments) + - [Classpapers](#a-list-of-class-documents) + - [Teacher chat](#teacher-chat) + - [Quiz](#quiz) + - [Question types](#question-types) + - [Text input](#text-input) + - [Basic select](#basic-select) + - [Complex select](#complex-select) + - [Pair match](#pair-match) + - [Ordering](#ordering) + +# Abstract + +_[go to top](#contents)_ + +Learning Pulse is an innovative learning platform that blends the strength of Redmenta and Google Classroom to create a collaborative educational environment. +The objective is to provide a comprehensive feature package, aiming to incorporate as many elements as possible while maintaining focus on stability. The feature list includes interactive quizzes, dedicated classrooms and assignments, designated study and file-sharing drives for students, and administrator panels. + +# Feature set + +- [Classroom](#classroom) + +_[go to top](#contents)_ + +## Classroom + +Upon entering the platform this is the first thing students (end-users) will see. A list of classes where the student is enrolled in. These group encore the following features + +### A list of assignments + +#### Single + +Students are assigned assignments by the teacher in this group which they have to fill out by a certain deadline. They can attach any type of document, file or code from their own drive. + +#### Cooperative + +These assignments can also be tagged with `cooperative` tag meaning teachers can assign multiple people to one assignment where they have to work together on one shared project. All students can see their own teammates and open up a chat window to discuss the project. + +### A list of class documents + +Teachers may submit work papers or any other material that students may need to enchant their learning with. These can be document files, programs or any media file. Students can view them straight from the application. + +### Teacher chat + +Students may direct message their teachers inside the class. They can ask for help or link any document from their drive/ the classes documents. They may also attach any kind of media file in that chat window + +# Quiz + +Teachers can create quizzes that students may fill out. This test is server-side only and students may only know the answer upon finishing it. It can also be disabled by the teacher to prevent cheating + +## Question types + +- ### Text input + + A basic text input field with a title. A character or word limit can also be set. + **Rewarding:** + Depends. The teacher may give the field a maximum achievable point that user can see when filling out. Then after the test is sent in teachers may grade accordingly. + +- ### Basic select + + A list of radio buttons are show which only one may be selected. + **Rewarding:** + One point + +- ### Complex select + + A list of checkboxes are show where multiple (or all) can be selected at once. + The creator of the quiz may also create limits on the concurrent selections. + **Rewarding:** + As many points as many good answers. + +- ### Pair match + + An even number of cards are given that can either be an image or text. Or vise versa. + The user has to pair these cards. Order does not matter only if they match. + **Rewarding:** + One point for each right selected pair. + + #### Rewarding: + + As many points as many good answers. + +- ### Ordering + + A list of text is show, the user has to order them accordingly. + + #### Rewarding: + + One point for every correctly ordered card. + +### File upload(s) + +A field where users can select file(s) from their own drive and upload. + +#### Rewarding: + +Depends. The teacher may give the field a maximum achievable point that user can see when filling out. Then after the test is sent in teachers may grade accordingly. + +## Drive + +Each user, including teachers will have their own drive where they can upload any kind of file which they may share with other users on the platform. For the sake of less complications S3 storage will be used to build this part of the project. +This feature neatly integrates with the [classroom](#classroom) and the [quiz](#quiz) part of the program. Students can attach files to quizzes, classwork's from here. +It also allows for collaborative work where users can use fully fledged office suite's to edit their documents inside the browser. + +# Frontend + +The frontend will be built using react as its one of the most popular and stable javascript frameworks out there. The frontend will be 50% client side and 50% SSR using next.js. + +## Themes + +The frontend will allow users to select from a curated list of themes so they can feel right at home. These themes will be made using the following css overrides for Bootstrap: + +- [Windows 95](https://github.com/themesberg/windows-95-ui-kit) +- [Neumorphism (default)](https://alexbsoft.github.io/win95.css/) +- [Material]() + +# Server + +The server will be written in Java more precisely SpringBoot. It will be broken down to microservices for easy _vertical_ scaling. For authentication Keycloak will be used to minimize security holes. Each part of the program will be broken down into microservices that later can be deployed using Kubernetes. + +## Load balancing + +# Staging + +## Alpha