Skip to content
Ashley-Kapaso edited this page Aug 30, 2024 · 1 revision

Introduction

Vision

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.

Objectives

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.

Business Need

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.

Project Scope

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.

User Stories

Admin

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.

Lecturer

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.

Student

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.

Functional Requirements

1. Manage organisations and user roles:

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. Manage and interact with workspace content:

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. Facilitate 3D lessons and interactions:

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

Service Contracts

Link to Service Contracts

UML Class diagram

Class Diagram

Use Case Diagrams

Authentication Subsystem

Authentication Subsystem

Organisation Subsystem

Organisation Subsystem

Workspace Subsystem

Workspace Subsystem

Online Lesson Subsystem

Lesson Subsystem

Architectural requirements

Quality Requirements

Scalability

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.

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.

Usability

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.

Availability

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.

Security

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.

Architectural Patterns

Service-Oriented Pattern

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.

Client-Server Pattern

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.

Peer-to-Peer Pattern

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.

Design Patterns

Template Pattern

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.

Chain of Responsibility

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.

Memento Pattern

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.

Technology Requirements

This explains the different technologies used to build ClassConnect:

User interface:

  • 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.

Backend:

  • NestJS: This is a framework for building the backend of ClassConnect using Node.js. It keeps the application well-organized and easy to maintain.

Testing:

  • 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.

Storage:

  • 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.

Appendix

Software Requirements Specification V1