-
Notifications
You must be signed in to change notification settings - Fork 1
SRS V2
Our vision is to provide lecturers and academic staff with the tools necessary to create an interactive, collaborative learning environment that inspires curiosity and exploration. Through dynamic 3D visuals and interactive materials, ClassConnect aims to cultivate an atmosphere where learning is not just informative but also deeply engaging and enjoyable for all participants.
The primary objective of the project is to develop a comprehensive web application that provides a platform that innovative lecturers can easily incorporate into their lessons, enhancing the learning experience for students across various disciplines.
The business need for the application arises from recent advancements in virtual reality (VR), 3D rendering, and streaming technologies, along with the emergence of new VR platforms like Apple Vision and Meta Quest. As a result, there is a growing number of individuals with access to VR headsets. However, there is currently a limited number of applications that fulfill the need for educational content in this space. Therefore, the web application addresses a significant gap in the market by providing a solution that leverages these technological advancements to deliver immersive and interactive educational experiences.
The project scope involves developing ClassConnect, an immersive educational platform, focusing on the following key aspects: User enrollment and workspace management functionalities for administrators. Construction and scheduling of lessons with 3D environment integration for lecturers. Inclusion of features for 3D environment manipulation and annotation. Real-time viewing and interaction capabilities for students, along with access to learning materials.
As an Administrator, I should be able to:
- manage and add different organisations to the platform with ease.
- control which people I can add to the organisation and who I also remove from it. The people I should be able to add would be academic staff and students.
- control the permissions that the people I add to the organisation have.
- add and remove workspaces that will be used by the staff and the students.
As a lecturer, I should be able to:
- create a workspace where I can upload study material and plan lessons for the students of the courses I coordinate.
- make edits to the information regarding the documents that I upload.
- freely manipulate the 3D objects during my lessons to help the students better visualize certain topics that may seem complex or complicated.
- communicate with my students so that any questions that arise during a lesson can be promptly answered. I would like the ability to remove anybody from my class who could be disrupting the lesson I am presenting.
- record lectures to refer to for future use.
- invite other lecturers and other academic staff to the classes I present so that they could present as well.
As a student, I should be able to:
- join the lessons that lecturers have set out for me and be able to download the relevant material from the lectures on any device I have available.
- communicate with the lecturer during the lessons to address any concerns or questions I have about the lecture.
- receive notifications of any new content related to the class that I am taking and view any announcements that the lecturer has prepared.
1.1 Create organisations
1.2 Add lecturers to organisations
1.3 Add students to organisations
1.4 Remove students from organisations
1.5 Remove lecturers from organisations
1.6 Enroll students into workspaces
1.7 Rename organisations
1.8 Remove organisations
1.9 Edit organisation details
2.1 Upload files to workspaces
2.2 Schedule lessons in workspaces
2.3 Edit uploaded document details
2.4 Upload 3D models for lessons
2.5 Access 3D models from workspaces and organisations
2.6 Share 3D models with organisations
2.7 Remove files from workspaces
2.8 Download learning materials
2.9 View uploaded learning materials
2.10 Mark documents as 'favourite' for prominence
3.1 Join lessons
3.2 View 3D environments in real-time
3.3 Send lesson notifications
3.4 Provide sandbox for 3D object manipulation
3.5 Set voice communication permissions
3.6 Set text communication permissions
Link to Service Contracts
The system must be designed to efficiently stream 3D information to all connected devices, regardless of the number of devices participating in a lesson. This ensures that the system can scale to accommodate an increasing number of users without compromising performance.
The system should ensure that 3D models are rendered smoothly on the viewing device, with a focus on maintaining a consistent frame rate to prevent any perceived choppiness. This means that the system should be capable of real-time rendering of 3D models without dropping frames.
The system should be intuitive and easy to use for both lecturers and students, regardless of their technical expertise. As ClassConnect aims to enhance the learning experience, a user-friendly interface is crucial for widespread adoption and effective use in educational settings.
The platform should maintain high uptime and be accessible to users whenever needed, as educational activities often have strict schedules. ClassConnect should aim for 99.9% availability to ensure that classes and learning materials are accessible at all times.
The system must implement robust security measures to protect user data, intellectual property, and ensure the integrity of the learning environment. As ClassConnect will handle sensitive educational information, strong security protocols are essential to maintain trust and comply with data protection regulations.
ClassConnect will implement a service-oriented architecture to promote scalability and performance. The system will be divided into two main services: the Learning Hub and the 3D Environment. This approach allows for independent deployment, and scaling of each service.
ClassConnect will follow the client-server architectural pattern, with a centralized server application and multiple client applications (web browsers) connecting to it. This separates the concerns of providing services and rendering the user interface.
For the real-time communication in the 3D environment, a peer-to-peer (P2P) pattern using WebRTC will be used. This avoids the need for a central server to stream data to each client. Instead, clients will connect directly and stream environment updates between each other in a mesh network.
The template pattern standardizes common operations for different user roles (administrators, lecturers, students) while allowing customization. It defines a skeleton for processes like user sign-up, lesson creation, and 3D environment interactions, ensuring code reuse and reducing redundancy. This enhances maintainability and scalability, efficiently managing complex interactions and varying requirements across different devices and browsers.
We'll implement a FIDO2-inspired authentication chain using the Chain of Responsibility pattern. The process involves nonce generation, user signature verification, and token-based authentication. Handlers in the chain manage nonce requests, sign-in validation, token authentication, and request processing. This approach ensures a secure, modular authentication flow that can be easily extended or modified as needed.
The Memento Pattern can be effectively utilized in the ClassConnect project to implement an undo feature for manipulating 3D models. The Originator, in this case, would be the 3D model, which can save its state to a Memento object and restore its state from a Memento. The Memento object acts as an immutable snapshot of the model's state at a particular point in time. The Caretaker manages these Memento objects, storing and retrieving them as needed without examining their contents. By capturing and restoring the state of the 3D model through Memento objects, ClassConnect can maintain a history of changes and allow users to undo and redo modifications to the model, ensuring smooth and reversible operations while preserving encapsulation.
This explains the different technologies used to build ClassConnect:
- SvelteKit: This is a modern and efficient framework that helps create ClassConnect's responsive and interactive design.
- Threlte: This library combines 3D features (from Three.js) with SvelteKit, allowing for the creation of 3D elements within the educational platform.
- NestJS: This is a framework for building the backend of ClassConnect using Node.js. It keeps the application well-organized and easy to maintain.
- Svelte Testing Library: This is a tool for testing the individual parts (components) of the user interface.
- NestJS Testing: This uses built-in NestJS tools to test how the application interacts with data (APIs).
- Cypress: This is a more advanced tool for testing the entire user experience from start to finish.
- Blob Storage: This efficiently stores user data and any 3D elements used in ClassConnect.
- MongoDB Atlas: This is the database that holds all of ClassConnect's information, chosen for its flexibility and ability to handle growth.