You are on page 1of 47

Educa

Software Requirement Specification


Subject Name:

Subject Code:

Semester:

Session:
Team Members:
INDEX

Chapter 1. Overview & Scope

1.1 Overview

1.2 Identification Of Need

1.3 Preliminary Investigation

1.4 Feasibility Study

Chapter 2. Assumptions and Dependencies

Chapter 3. Planning & Scheduling

3.1 Planning

3.2 Scheduling

Chapter 4. Definitions, Acronyms

Chapter 5. Technologies to be used

Chapter 6. Specific Requirements

6.1 Information Description

6.1.1 Description of the Project

6.1.2 Scope

6.2 Functional Description

6.2.2 Functional Partition

6.2.3 Functional Description

6.2.4 Data Flow Diagram [DFD]

6.2.5 Control Flow Diagram

6.3 Preliminary Object Oriented Domain Analysis

6.3.1 Inheritance Relationship

6.3.2 Class Description

6.3.2.1 Abstract Concrete


6.3.2.2 List of Subclass

6.3.2.3 Purpose

6.3.2.4 Collaboration

6.3.2.5 Attributes

6.3.2.6 Constants

6.3.3 Class Diagram

6.3.4 CRC Models

6.3.5 Use Case Diagram

6.4 Data description

6.4.1 Table Structure

6.4.2 E R Diagram

6.4.3 Data Dictionary

6.5 Behavioral Description

6.5.1 State Transition Diagram

6.5.2 Activity Diagram

6.6 Supporting Information

6.6.1 Architecture diagram

6.6.2 Security

6.6.3 Testing

6.7 Supplementary Requirements

6.8 References
Chapter1. Overview and Scope

 1.1 Overview:-
Introducing Educa, your premier platform for seamless student-tutor collaboration!
Educa is a user-friendly software designed to connect students with qualified tutors,
fostering an environment of academic excellence.

Educa offers a streamlined experience where students and tutors can effortlessly
connect and collaborate. Here's what makes Educa stand out:

1. User-Friendly Interface:
- Intuitive design for easy navigation.
- Simplified registration process for both students and tutors.

2. Smart Matching Algorithm:


- Educa's advanced algorithm matches students with tutors based on academic needs,
preferences, and availability.
- Receive personalized recommendations for optimal learning experiences.

3. Scheduling and Calendar Integration:


- Effortlessly schedule one-on-one sessions at mutually convenient times using Educa.
- Seamlessly sync with personal calendars to avoid scheduling conflicts.

4. In-App Messaging and Chat:


- Secure and real-time messaging on Educa for easy communication between students
and tutors.
- Discuss assignments, clarify doubts, and stay connected seamlessly.

5. Virtual Meeting Rooms:


- Integrated video conferencing on Educa for face-to-face tutoring sessions.
- Enjoy interactive whiteboards and screen sharing for a dynamic learning experience.

6. Resource Sharing:
- Share educational materials, documents, and resources directly through the Educa
platform.
- Collaborate on projects and assignments in real-time.

7. Progress Tracking:
- Monitor academic progress with built-in tracking tools on Educa.
- Set goals, track achievements, and celebrate successes together.
8. Secure Payment System:
- Educa ensures a seamless and secure payment process for tutoring sessions.
- Benefit from transparent billing and invoicing for both students and tutors.

9. Feedback and Ratings:


- Leave and receive feedback on Educa to enhance the learning experience.
- Ratings and reviews contribute to a trustworthy Educa community.

Educa is not just a platform; it's a catalyst for academic growth. Join Educa and embark
on a journey towards excellence in education!

 1.2 Identification of Need:-


1. Diverse Learning Styles:
- Educa caters to individual learning preferences with a personalized and adaptive
approach.

2. Globalization of Education:
- Facilitates connections between students and tutors globally, transcending
geographical boundaries.

3. Rising Demand for Tutors:


- Addresses the growing demand for qualified tutors with a centralized platform for
easy access.

4. Technological Advancements:
- Leverages technology for virtual meeting rooms, interactive tools, and seamless
communication.

5. Flexible Learning Environments:


- Provides flexibility in scheduling, breaking away from rigid time constraints.

6. Enhanced Collaboration:
- Promotes resource sharing, project collaboration, and real-time interaction for a
collaborative learning experience.

7. Quality Assurance in Tutoring:


- Ensures reliable and high-quality tutoring through transparent profiles, ratings, and
reviews.
 1.3 Preliminary Investigation:-
1. What prompted the development of Educa?
- The need for a modern, flexible, and globalized education platform prompted the
development of Educa.

2. How does Educa address diverse learning styles?


- Educa caters to individual learning preferences by offering a personalized and
adaptive learning approach.

3. What role does Educa play in the globalization of education?


- Educa facilitates connections between students and tutors globally, breaking down
geographical barriers.

4. How does Educa respond to the rising demand for tutors?


- Educa addresses the growing demand for qualified tutors by providing a centralized
platform for easy access.

5. In what ways does Educa leverage technology?


- Educa utilizes technology for features like virtual meeting rooms, interactive tools,
and seamless communication.

6. How does Educa provide flexibility in learning environments?


- Educa offers flexibility in scheduling, allowing users to connect at their convenience
and break away from rigid time constraints.

7. How does Educa enhance collaboration in the learning process?


- Educa promotes collaboration through features like resource sharing, project
collaboration, and real-time interaction.

8. How does Educa ensure the quality of tutoring services?


- Educa ensures quality tutoring through transparent profiles, ratings, and reviews,
providing users with reliable and high-quality educational experiences.

 1.4 Feasibility Study:-


The feasibility study for Educa encompasses a thorough analysis across key dimensions.
Market analysis focuses on identifying the target audience and understanding the
competitive landscape. Technical feasibility involves evaluating development, scalability,
and security aspects. Financial feasibility estimates costs and explores revenue streams,
while legal compliance ensures adherence to data privacy regulations and intellectual
property considerations. Operational feasibility assesses user adoption and plans for
ongoing support. A comprehensive marketing and user acquisition strategy is crucial for
successful outreach. Risk analysis identifies and mitigates potential challenges, and
assessing social impact evaluates the educational and inclusivity implications. The
consideration of environmental sustainability involves incorporating eco-friendly
practices. Each element contributes to a holistic understanding of Educa's viability and
potential success in the education technology landscape.

The constraints faced by Educa can be broken down into operational, technical, and
economic categories:

Operational Constraints:

1. User Adoption Challenges:


- Resistance to change or the need for extensive user training may hinder smooth
operational integration, affecting user adoption.

2. Regulatory Compliance:
- Adherence to diverse and evolving regulatory frameworks, particularly in the
education and data privacy sectors, may pose operational challenges.

3. Market Saturation:
- Intense competition may pose operational constraints in terms of user acquisition,
differentiation, and establishing a unique operational foothold for Educa.

Technical Constraints:

4. Technological Challenges:
- Compatibility issues, security concerns, or the need for specialized infrastructure may
pose technical constraints on Educa's development and scalability.

5. Dependency on External Factors:


- Reliance on third-party integrations or partnerships may introduce uncertainties and
technical constraints on Educa's functionality.

6. Infrastructure Limitations:
- Availability and accessibility of necessary infrastructure, such as reliable internet
connectivity, could pose technical limitations on Educa's reach.

Economic Constraints:

7. Budgetary Constraints:
- Limited financial resources may constrain economic aspects, impacting the budget
for development, marketing, and ongoing operational expenses.
8. Time Constraints:
- Tight development schedules or unexpected delays can have economic implications,
affecting the timely launch and competitive positioning of Educa.

9. Market Viability and Monetization:


- Economic constraints may arise if challenges in estimating market demand or
implementing effective monetization strategies are encountered.

Recognizing and addressing these operational, technical, and economic constraints


during the feasibility study is crucial for formulating a comprehensive plan that ensures
Educa's successful development, implementation, and sustainability in the market.

Chapter 2. Assumption and Dependencies

1. User Accessibility:

- Assumes that users have reliable internet access and access to devices capable of running
the Educa platform.

2. Market Demand:

- Assumes that there is a sustained demand for online tutoring and collaborative learning
platforms.

3. Regulatory Stability:

- Assumes that regulatory frameworks related to online education and data privacy remain
stable and favorable.

4. Technology Compatibility:

- Assumes that users have devices and internet browsers that are compatible with Educa's
technological requirements.

5. Educational Trends:

- Assumes that Educa's features align with and remain relevant to evolving educational
methodologies and trends.
Dependencies for Educa:

1. Third-Party Integrations:

- Depends on seamless integration with external tools or services for features such as video
conferencing, payment processing, and document sharing.

2. Data Security Measures:

- Depends on the implementation of robust data security measures to ensure the privacy and
integrity of user information.

3. Educational Content Providers:

- Depends on partnerships or collaborations with educational content providers to enhance


the platform's resource-sharing capabilities.

4. User Engagement:

- Depends on active user engagement and participation for collaborative features, which may
require effective marketing and outreach strategies.

5. Global Internet Infrastructure:

- Depends on the stability and availability of global internet infrastructure to ensure


consistent user experience across different regions.

6. Regulatory Compliance:

- Depends on staying compliant with evolving regulatory standards, and any changes in
regulations may impact the platform's operations.

7. Continuous Technological Updates:

- Depends on ongoing technological updates and advancements to maintain a competitive


edge and meet user expectations.

Chapter 3. Planning and Scheduling

1. Market Research and Analysis (Duration: 4 weeks):


- Conduct thorough market research to understand user needs, competition, and
market trends.
- Schedule analysis of the gathered data to inform feature development and market
positioning.

2. Platform Design and Prototyping (Duration: 8 weeks):


- Engage in the design phase, creating user interfaces and prototypes for Educa.
- Plan iterative feedback sessions with potential users for continuous improvement.

3. Development Phase 1 (Duration: 12 weeks):


- Begin development of core features, focusing on user profiles, matchmaking
algorithms, and basic communication tools.
- Conduct regular sprint reviews to assess progress and address any technical
challenges.

4. User Testing (Duration: 6 weeks):


- Initiate user testing to gather feedback on the initial platform functionalities.
- Schedule feedback sessions to identify and address user experience improvements.

5. Development Phase 2 (Duration: 10 weeks):


- Expand development to include advanced features such as virtual meeting rooms,
collaborative tools, and resource sharing.
- Implement necessary security measures and conduct thorough testing.

6. Marketing and Outreach (Duration: Ongoing):


- Develop a comprehensive marketing strategy for user acquisition.
- Schedule regular updates on social media platforms and educational forums to
create awareness.

7. Launch Preparation (Duration: 4 weeks):


- Finalize platform testing and resolve any outstanding issues.
- Develop a launch plan, including promotional events, partnerships, and initial user
engagement strategies.

8. Platform Launch (Week 1):


- Execute the launch plan, making Educa accessible to users.
- Monitor user feedback and address any immediate concerns.

9. Continuous Improvement and Updates (Ongoing):


- Establish a schedule for regular updates and improvements based on user feedback
and emerging trends.
- Plan periodic assessments of the platform's performance and user satisfaction.

10. Partnership Development (Ongoing):


- Identify potential partnerships with educational institutions, content providers, and
other relevant entities.
- Schedule outreach efforts to establish collaborations for platform enhancement.

11. Monitoring Regulatory Changes (Ongoing):


- Establish a schedule for monitoring and adapting to changes in regulatory
frameworks.
- Ensure ongoing compliance with data privacy and educational standards.

12. Technical Support and Maintenance (Ongoing):


- Develop a schedule for providing technical support to users.
- Plan regular maintenance checks and updates to ensure the platform's stability and
security.

This outlined plan provides a structured timeline for the development, launch, and
continuous improvement of Educa. Regular assessments and adjustments ensure
adaptability to market dynamics and user needs.

Chapter 4. Definitions and Acronyms

1. Users:

- End users, those who only visit this site.

2. HTML:

- Hypertext Markup Language is used to create static websites.

3. HTTP:

- Hypertext Transfer Protocol is a transaction-oriented client/server protocol between web


browsers and web servers.

4. HTTPS:

- Secure Hypertext Transfer Protocol is a hypertext transfer protocol over a secure socket
layer.

5. TCP/IP:
- Transmission Control Protocol/Internet Protocol is the communication protocol used to
connect hosts on the internet.

6. PHP DB:

- PHP Database, where PHP is utilized for interacting with and manipulating databases, often
integrated with database management systems such as MySQL or PostgreSQL, to facilitate
dynamic content generation and data storage for web applications.

Chapter 5. Tech Stack Used


1. PHP:

- Hypertext Preprocessor, a server-side scripting language commonly used for web


development.

2. HTML:

- Hypertext Markup Language is used to create static websites.

3. CSS:

- Cascading Style Sheets define the visual presentation of a web page, enhancing HTML
structure.

4. JS:

- JavaScript is a scripting language for web development, enabling dynamic and interactive
user experiences.

5. Agora API:

- Agora API is utilized for integrating real-time audio and video communication features into
web applications, enhancing user engagement and collaboration.
Chapter 6. Specific Requirements
6.1 Information Description

6.1.1 Description of the Project

Educa is an innovative online educational platform designed to seamlessly connect students


with tutors, fostering a dynamic virtual environment for collaborative learning. Through user-
friendly registration and comprehensive profiles, students can search for tutors based on
degrees, while tutors can find students by academic level. The platform facilitates connection
requests, interactive online tutoring sessions with video conferencing integration, and
customizable quiz/exam creation for comprehensive assessments. Educa also features a
dynamic discussion forum for academic discourse. Admin controls, including account validation
and discussion forum management, ensure platform integrity. With a focus on security and
optimal performance, Educa aims to revolutionize online education by creating a collaborative
and engaging learning environment for students and tutors alike. Its user-centric approach
extends to customizable quiz and exam features, allowing tutors to tailor assessments to their
subjects. The platform prioritizes security, implementing robust measures for user
authentication and data encryption. Admin oversight ensures that the discussion forum
remains a constructive space for academic dialogue. Educa, with its commitment to
performance and user satisfaction, strives to redefine the online learning experience by
providing a comprehensive and interactive platform that empowers both students and tutors
on their educational journeys.

6.1.2 Scope

The scope of Educa encompasses the development and implementation of a comprehensive


online educational platform designed to facilitate meaningful connections between students
and tutors. The platform will offer a user-friendly interface for seamless registration, allowing
students and tutors to create detailed profiles that highlight academic achievements, degrees,
and subjects of expertise. Educa will employ a sophisticated matching algorithm to enable
students to search for tutors based on specific criteria, while tutors can identify potential
students based on academic levels. The project includes the development of features such as
connection requests, interactive online tutoring sessions with video conferencing integration,
and a customizable quiz/exam creation system. Additionally, Educa will host a discussion forum
for academic discourse, with administrative controls in place to validate accounts, manage the
forum, and ensure the overall integrity of the platform. Security measures will be implemented
to safeguard user data, and the platform will be optimized for performance to ensure a
seamless user experience, even during peak usage periods. The project aims to revolutionize
online education by providing a collaborative and engaging learning environment for both
students and tutors.

6.2 Functional Description

6.2.2 Functional Partition

6.2.3 Functional Description:

Educa is a feature-rich online educational platform designed to provide an interactive and


collaborative learning experience for both students and tutors. The platform's functionalities
are divided into key components:

1. User Registration and Profile Creation:

- Users, including students and tutors, can register on Educa with essential details.
- Detailed profiles allow users to showcase academic achievements, degrees, subjects of
expertise, and availability.

2. Search and Matching Algorithm:

- Students can search for tutors based on degrees and subjects.

- Tutors can find students based on academic levels through a smart matching algorithm.

3. Connection Requests:

- Students have the ability to send connection requests to tutors, specifying their academic
needs.

- Tutors can manage and respond to these requests, accepting or rejecting based on
availability and expertise.

4. Quiz/Exam Creation and Participation:

- Tutors can create quizzes and exams with subject-specific questions.

- Students can participate in these assessments within specified timeframes, providing a


comprehensive evaluation of their understanding.

5. Discussion Forum:

- Both students and tutors gain access to a discussion forum for academic discussions and
knowledge exchange and also provide link for each teaching sessions.

- Admin oversees and moderates the forum to maintain a positive and constructive
environment.

6. Admin Controls:

- The admin role is responsible for validating accounts during registration.

- Admin can manage and moderate the discussion forum, ensuring a high standard of content
and user behavior.

7. Security Measures:

- Educa implements secure user authentication and data encryption to protect user data and
privacy.

8. Performance Optimization:
- The platform is optimized for performance, ensuring responsiveness and efficiency, even
during peak usage periods.

Educa's functional design aims to create a seamless and engaging educational experience,
fostering collaboration between students and tutors while providing a secure and user-friendly
environment for learning and knowledge-sharing.

6.2.4 Data Flow Diagram [DFD]


6.2.5 Control Flow Diagram:
6.3 Preliminary Object Oriented Domain Analysis
6.3.1 Inheritance Relationship

Explanation:

1. User Class: This class contains common attributes for all users, such as userId, username, and
password.

2. Student Class (inherits from User): Extends the User class and adds attributes specific to
students, like studentId, class, and a list of connections.

3. Tutor Class (inherits from User): Extends the User class and adds attributes specific to tutors,
such as tutorId, degrees, and teaching subjects.

4. Admin Class (inherits from User): Extends the User class and adds attributes specific to
administrators, such as adminId and permissions.

5. Discussion Class: Represents the discussion forum with attributes like discussionId, topic, and
a list of messages.
This inheritance structure allows to reuse common attributes and behaviors from the User
class while allowing for specialization in the Student, Tutor, and Admin classes.

6.3.2 Class Description

6.3.2.1 Abstract Concrete

Abstract Class Description:

1. User (Abstract Class):

Attributes:

- `userId` (string)

- `username` (string)

- `password` (string)

Methods:

- login(): Abstract method to handle user login.

- logout(): Abstract method to handle user logout.

Notes:

- Serves as the abstract base class for concrete classes such as `Student`, `Tutor`, and `Admin`.

- Contains common attributes and declares abstract login and logout methods to be
implemented by its subclasses.

Concrete Class Descriptions:

2. Student (Concrete Class, Inherits from User):

Attributes:

- `studentId` (string)

- `class` (string)

- `connectionList` (List of User)

Methods:
- `sendConnectionRequest(tutor: Tutor)`: Sends a connection request to a tutor.

- `acceptConnectionRequest(requester: User)`: Accepts a connection request.

Notes:

- Inherits from the `User` class, extending it with student-specific attributes and methods for
connecting with tutors.

3. Tutor (Concrete Class, Inherits from User):

Attributes:

- `tutorId` (string)

- `degrees` (List of string)

- `teachingSubjects` (List of string)

Methods:

- `startTeaching(student: Student)`: Initiates teaching sessions with a student.

- `setQuizExam(quizExam: QuizExam)`: Sets quiz or exam questions.

Notes:

- Inherits from the `User` class, adding tutor-specific attributes and methods for teaching and
setting quizzes.

4. Admin (Concrete Class, Inherits from User):

Attributes:

- `adminId` (string)

- `permissions` (List of string)

Methods:

- `validateAccount(user: User)`: Validates user accounts.

- `manageDiscussionForum()`: Manages the discussion forum.


Notes:

- Inherits from the `User` class, extending it with admin-specific attributes and methods for
account validation and forum management.

5. Discussion (Concrete Class):

Attributes:

- `discussionId` (string)

- `topic` (string)

- `messages` (List of string)

Methods:

- `addMessage(user: User, message: string)`: Adds a message to the discussion.

Notes:

- Represents the discussion forum with methods to add messages.

6. QuizExam (Concrete Class):

Attributes:

- `quizExamId` (string)

- `questions` (List of string)

Methods:

- `addQuestion(question: string)`: Adds a question to the quiz or exam.

Notes:

- Represents quizzes or exams with methods to add questions.


6.3.2.2 List of Subclass

Here is a list of the subclasses:

1. Student (Subclass of User):

- Attributes:

- `studentId` (string)

- `class` (string)

- `connectionList` (List of User)

2. Tutor (Subclass of User):

- Attributes:

- `tutorId` (string)

- `degrees` (List of string)

- `teachingSubjects` (List of string)

3. Admin (Subclass of User):

- Attributes:

- `adminId` (string)

- `permissions` (List of string)

6.3.2.3 Purpose

1. User Class:

Purpose:
- The `User` class serves as an abstract base class that encapsulates common attributes and
methods shared by all users in the system.

- It provides a foundation for user authentication and basic functionalities like login and
logout.

2. Student Class (Subclass of User):

Purpose:

- The `Student` class extends the `User` class and includes attributes and methods specific to
students.

- It allows students to connect with tutors, manage their connections, and interact within the
system.

3. Tutor Class (Subclass of User):

Purpose:

- The `Tutor` class extends the `User` class with attributes and methods tailored for tutors.

- It enables tutors to accept connection requests, initiate teaching sessions, and set quiz or
exam questions.

4. Admin Class (Subclass of User):

Purpose:

- The `Admin` class extends the `User` class to include attributes and methods specific to
administrators.

- It provides functionalities for account validation, user management, and overseeing the
discussion forum.

5. Discussion Class:

Purpose:
- The `Discussion` class represents the discussion forum within the system.

- It facilitates communication among users by allowing them to post messages and engage in
discussions on various topics.

6. Quiz/Exam Class:

Purpose:

- The `Quiz/Exam` class manages quizzes or exams within the system.

- It allows tutors to set questions and enables students to participate in assessments,


providing an interactive learning experience.

These classes collectively contribute to the overall functionality providing a structured and
modular design to handle different roles and activities within the educational platform.

6.3.2.4 Collaboration

Collaboration in the context of software design refers to how different classes or components
work together to achieve the overall functionality of the system.

1. User, Student, Tutor, Admin Classes Collaboration:

- Users log in and out using methods provided by the `User` class.

- Students and tutors are subclasses of the `User` class, inheriting common attributes and
methods.

- The `Student` class can send connection requests to tutors, and tutors can accept or reject
these requests.

- The `Admin` class has the authority to validate accounts and manage the discussion forum.

2. Discussion Class Collaboration:


- Users, including students, tutors, and admins, can interact with the discussion forum
through the `Discussion` class.

- The `Discussion` class allows users to add messages, fostering communication and
collaboration within the platform.

3. Student and Tutor Classes Collaboration:

- The `Student` class can send connection requests to tutors, and tutors can accept or reject
these requests.

- Tutors can initiate teaching sessions with connected students using the `startTeaching`
method.

4. Tutor and Quiz/Exam Classes Collaboration:

- Tutors can set quiz or exam questions using the `setQuiz/Exam` method provided by the
`Tutor` class.

- The `Quiz/Exam` class manages the questions and assessments within the system.

5. Admin Class Collaboration:

- The `Admin` class has the authority to validate user accounts, ensuring the integrity and
security of the platform.

- Admins can manage the discussion forum, overseeing and moderating discussions as
needed.

6. Overall System Collaboration:

- Users, discussions, tutors, quizzes, and admins collaborate to create an integrated


educational platform.

- The classes work together to provide a seamless experience for students and tutors, allowing
for communication, teaching, and assessments.
In summary, collaboration involves the orchestrated interaction between different classes to
achieve the overall goals of the educational platform. Each class has specific responsibilities,
and their collaboration creates a cohesive and functional system.

6.3.2.5 Attributes

1. User Class (Abstract):

- `userId` (string)

- `username` (string)

- `password` (string)

2. Student Class (Subclass of User):

- `studentId` (string)

- `class` (string)

- `connectionList` (List of User)

3. Tutor Class (Subclass of User):

- `tutorId` (string)

- `degrees` (List of string)

- `teachingSubjects` (List of string)

4. Admin Class (Subclass of User):

- `adminId` (string)

- `permissions` (List of string)


5. Discussion Class:

- `discussionId` (string)

- `topic` (string)

- `messages` (List of string)

6. Quiz/Exam Class:

- `quiz/ExamId` (string)

- `questions` (List of string)

These attributes provide the necessary information and functionality for each class to perform
its designated role within the educational platform. Adjustments and additional attributes may
be needed based on specific requirements and functionalities.

6.3.2.6 Constants

Constants could represent fixed values that remain unchanged throughout the program.
Constants are typically used for values that are not meant to be modified during runtime.

1. User Class:

- `MAX_USERNAME_LENGTH`: Maximum allowed length for a username.

- `MIN_PASSWORD_LENGTH`: Minimum required length for a password.

2. Student Class:

- `MAX_CONNECTIONS`: Maximum number of connections a student can have.


3. Tutor Class:

- `MAX_DEGREES`: Maximum number of degrees a tutor can have.

- `MAX_SUBJECTS`: Maximum number of teaching subjects a tutor can specify.

4. Admin Class:

- `ADMIN_PERMISSIONS`: List of permissions that an admin may have.

5. Discussion Class:

- `MAX_MESSAGES`: Maximum number of messages allowed in a discussion.

6. Quiz/Exam Class:

- `MAX_QUESTIONS`: Maximum number of questions allowed in a quiz or exam.

Constants can help make code more readable and maintainable by giving meaningful names to
values that are expected to remain constant.
6.3.3 Class Diagram
6.3.4 CRC Models
6.3.5 Use Case Diagram
6.4 Data description

6.4.1 Table Structure

Here's a simple representation of the table structure for the main entities under the category of
data description:

1. User Table:

- Columns:

- `userId` (Primary Key)

- `username`

- `password`

2. Student Table:

- Columns:

- `studentId` (Primary Key, Foreign Key references User(userId))

- `class`

- `connectionList` (List of User IDs)

3. Tutor Table:

- Columns:

- `tutorId` (Primary Key, Foreign Key references User(userId))

- `degrees` (List of strings)

- `teachingSubjects` (List of strings)


4. Admin Table:

- Columns:

- `adminId` (Primary Key, Foreign Key references User(userId))

- `permissions` (List of strings)

5. Discussion Table:

- Columns:

- `discussionId` (Primary Key)

- `topic`

- `messages` (List of strings)

6. Quiz/Exam Table:

- Columns:

- `quiz/ExamId` (Primary Key)

- `questions` (List of strings)

In this representation:

- Primary keys are unique identifiers for each record in the table.

- Foreign keys establish relationships between tables by referencing the primary key of another
table.

- Lists of strings represent attributes that can have multiple values (e.g., `degrees`,
`teachingSubjects`, `messages`, `questions`).
6.4.2 E R Diagram
6.4.3 Data Dictionary
User Table:

Field Type Description


userId VARCHAR Unique identifier for the user.
username VARCHAR User's username for login.
password VARCHAR User's password for login (hashed).
userType VARCHAR Indicates whether the user is a Student, Tutor, or Admin.

Student Table:

Field Type Description


studentId VARCHAR Unique identifier for the student.
userId VARCHAR Foreign key referencing User table.
class VARCHAR The class or grade of the student.

Tutor Table:

Field Type Description


tutorId VARCHAR Unique identifier for the tutor.
userId VARCHAR Foreign key referencing User table.

Admin Table:

Field Type Description


adminId VARCHAR Unique identifier for the admin.
userId VARCHAR Foreign key referencing User table.

Connection Table:

Field Type Description


connectionId VARCHAR Unique identifier for the connection.
studentId VARCHAR Foreign key referencing Student table.
tutorId VARCHAR Foreign key referencing Tutor table.
status VARCHAR Indicates the status of the connection request (e.g., pending, accepted).

Discussion Table:
Field Type Description
discussionId VARCHAR Unique identifier for the discussion.
topic VARCHAR The topic or subject of the discussion.

Message Table:

Field Type Description


messageId VARCHAR Unique identifier for the message.
discussionId VARCHAR Foreign key referencing Discussion table.
userId VARCHAR Foreign key referencing User table.
content TEXT The content of the message.
timestamp TIMESTAMP The timestamp indicating when the message was posted.

QuizExam Table:

Field Type Description


quizExamId VARCHAR Unique identifier for the quiz or exam.
tutorId VARCHAR Foreign key referencing Tutor table.
questions JSON JSON array storing the questions for the quiz or exam.

6.5 Behavioral Description

6.5.1 State Transition Diagram

Account Registration
Course Creation

Searching for a course

Registering for a course


6.5.2 Activity Diagram

Administrator
Registration

Course Registration
6.6 Supporting Information

6.6.1 Architecture diagram

6.6.2 Security
DB2 security mechanisms: There are three main mechanisms within DB2 that allow a DBA to implement
a database security plan: authentication, authorization, and privileges.

Authentication is the first security feature encountered when accessing a DB2 instance or database. DB2
authentication works closely with the security features of the underlying operating system to verify user
IDs and passwords. DB2 can also work with security protocols like Kerberos to authenticate users.
Authorization involves determining the operations that users and/or groups can perform, and the data
objects that they may access. A user's ability to perform high-level database and instance management
operations is determined by the authorities that they have been assigned. The five different authority
levels within DB2 are SYSADM, SYSCTRL, SYSMAINT, DBADM, and LOAD.
Privileges are a bit more granular than authorities, and can be assigned to users and/or groups.
Privileges help define the objects that a user can create or drop.

The database server is the machine (or machines in a partitioned database system) on which the
database physically resides. The DB2 database clients are machines that are configured to run queries
against the database on the server. These clients can be local (that is, they can reside on the same
physical machine as the database server) or they can be remote (that is, they can reside on separate
machines).

If the database resides on a mainframe machine running an operating system like AS/400 (iSeries) or
OS/390 (zSeries), it's called a host or host server. A gateway is a machine running the DB2 Connect
product. Through the gateway, DB2 client machines can connect to a DB2 database that resides on a
host machine. The gateway is also referred to as the DB2 Connect Server.

DB2 authentication controls the following aspects of a database security plan:


 Who is allowed access to the instance and/or database
 Where and how a user's password will be verified
It does this with the help of the underlying operating system security features whenever an attach or
connect command is issued. An attach command is used to connect to the DB2 instance, whereas a
connect command is used to connect to a database within a DB2 instance.
6.6.3 Testing
The test strategy consists of a series of different tests that will fully exercise the tutor selection system.
The primary purpose of these tests is to uncover the system's limitations and measure its full
capabilities. A list of the various planned tests and a brief explanation follows below.

System Test
The System tests will focus on the behavior of the system. User scenarios will be executed against the
system as well as screen mapping and error message testing. Overall, the system tests will test the
integrated system and verify that it meets the requirements defined in the requirements document.

Performance Test
Performance test will be conducted to ensure that the system’s response times meet the user
expectations and do not exceed the specified performance criteria. During these tests, response times
will be measured under heavy stress and/or volume.

Security Test
Security tests will determine how secure the new system is. The tests will verify that unauthorized user
access to confidential data is prevented.

Automated Test
A suite of automated tests will be developed to test the basic functionality of the vehicles online system
and perform regression testing on areas of the systems that previously had critical/major defects. The
tool will also assist us by executing user scenarios thereby emulating several users.

Stress and Volume Test


We will subject the system to high input conditions and a high volume of data during the peak times.
The System will be stress tested using twice the number of expected users.

Recovery Test
Recovery tests will force the system to fail in various ways and verify the recovery is properly performed.
It is vitally important that all payroll data is recovered after a system failure & no corruption of the data
occurred.

Documentation Test
Tests will be conducted to check the accuracy of the user documentation. These tests will ensure that no
features are missing, and the contents can be easily understood.
Beta Test
The new system will be beta tested and any defects found will be reported. This will subject the system
to tests that could not be performed in our test environment.

User Acceptance Test


Once the system is ready for implementation, User Acceptance Testing will be performed. The purpose
of these tests is to confirm that the system is developed according to the specified user requirements
and is ready for operational use.

6.7 Supplementary Requirements


Supplementary requirements typically capture additional features, constraints, or quality
attributes that enhance the functionality and performance of. Here are some potential
supplementary requirements:

1. User Authentication:

- Implement secure authentication mechanisms, such as password hashing and salting.

- Allow users to reset their passwords through a secure process.

2. User Authorization:

- Define roles and permissions for different user types (Student, Tutor, Admin).

- Implement access control to ensure that users can only perform actions relevant to their
role.

3. Security Measures:

- Use HTTPS to encrypt data transmitted between the client and the server.

- Implement protection against common web vulnerabilities (e.g., Cross-Site Scripting, Cross-
Site Request Forgery).

4. User Profile Management:

- Allow users to update their profiles, including changing passwords, updating personal
information, and adding profile pictures.
5. Notification System:

- Implement a notification system to inform users about connection requests, accepted


connections and important announcements.

6. Search and Filter Functionality:

- Provide search and filter options for students to find tutors based on degrees and subjects,
and for tutors to find students based on their class.

7. Discussion Forum Enhancements:

- Allow users to like, comment, and reply to messages in the discussion forum.

- Implement thread categorization for better organization of discussions.

8. Quiz/Exam Enhancements:

- Include a timer for quizzes/exams to impose time constraints.

- Allow tutors to review and provide feedback on students' quiz/exam performance.

9. Account Management by Admin:

- Enable administrators to deactivate or delete user accounts if needed.

- Implement logging and auditing for admin actions.

10. Mobile Responsiveness:

- Ensure the platform is responsive to different device screen sizes, supporting a seamless
experience on both desktop and mobile devices.
11. Performance Optimization:

- Optimize database queries and overall system performance for scalability.

- Implement caching mechanisms to reduce load times.

12. Data Backup and Recovery:

- Regularly back up the database to prevent data loss.

- Implement a recovery plan in case of accidental data corruption or loss.

13. Terms of Service and Privacy Policy:

- Clearly define and communicate the terms of service and privacy policy to users.

14. Internationalization and Localization:

- Design the system to support multiple languages and regional preferences.

6.8 References

 Different study materials from web.

You might also like