0% found this document useful (0 votes)
4 views46 pages

GAMS-SRS Version 1.0 Specification Document

Uploaded by

Viet Thanh Vu
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views46 pages

GAMS-SRS Version 1.0 Specification Document

Uploaded by

Viet Thanh Vu
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

đ

Requirement & Design Specification


Fdemy
Version: 1.0

GAMS-SRS_v1.0 Page 1 / 35
– Hanoi, August 2022 –

Record of Changes
Version Date A* In charge Change Description
M, D
V1.0 10/6 A MinhPCHE172291 File is created

*A - Added M - Modified D - Deleted

GAMS-SRS_v1.0 Page 2 / 35
Contents
Record of Changes.......................................................................................................................................2
I. Overview..................................................................................................................................................4
1. User Requirements..............................................................................................................................4
1.1 Actors.............................................................................................................................................4
1.2 Use Cases.......................................................................................................................................4
2. System Functionalities.........................................................................................................................5
2.1 Screens Flow..................................................................................................................................5
2.2 Screen Authorization.....................................................................................................................5
2.3 Non-UI Functions...........................................................................................................................6
3. High Level Design.................................................................................................................................6
3.1 Database Design............................................................................................................................6
3.2 Code Packages...............................................................................................................................7
II. Functional Requirements.........................................................................................................................8
1. <<Feature Name1>>............................................................................................................................8
1.1 <<Screen/Function Name1>>........................................................................................................8
1.2 User Login......................................................................................................................................8
1.3 …....................................................................................................................................................8
2. System Administration........................................................................................................................8
2.1 System Settings..............................................................................................................................8
2.2 …....................................................................................................................................................9
3. …..........................................................................................................................................................9
III. Detailed Designs.....................................................................................................................................9
1. <Feature/Function Name1>.................................................................................................................9
1.1 Class Diagram................................................................................................................................9
1.2 Sequence Diagram(s)...................................................................................................................10
1.3 Database Queries.........................................................................................................................10
2. <Feature/Function Name2>...............................................................................................................10

GAMS-SRS_v1.0 Page 3 / 35
I. Overview
1. User Requirements
1.1 Actors
# Actor Description
Owner of the page, can create expert accounts,, manage user accounts,
1 Admin interact and moderate the system.
Can accept or reject course from expert
Send courses to admin, receive feedback and can edit the content of owned
2 Expert
courses when granted permission from the admin.
Group of logged in users, they can manage personal information, view and
search details of all courses and experts, add, delete or purchase courses in
3 Customer
the shopping cart. Can study and take tests and exams of the purchased
courses.
Group of users that do not log in to the web, they can register customer
4 Guest account, view information about the web, product information, add
products to the cart, search for products with filters (name, category,...).

1.2 Use Cases


1.2.1 UCs for Guest

GAMS-SRS_v1.0 Page 4 / 35
1.2.2 UCs for Customer

1.2.3 UCs for Expert

GAMS-SRS_v1.0 Page 5 / 35
1.2.4 UCs for Admin

GAMS-SRS_v1.0 Page 6 / 35
2. System Functionalities
2.1 Screens Flow

2.2 Screen Authorization

Screen Admin Expert Customer Guest


Home Page X X
User Login X X X
User Register X
Forgot Password X X X
View Courses X X
Course Details X X X X
View Expert X X
Profile X X
Update Profile X X
Cart X X
Checkout X
Purchased Courses X
Learning X
Expert Home Page X
Manage Owned Courses X
New Course X
Update Course X
Admin Home Page X

GAMS-SRS_v1.0 Page 7 / 35
Manage Courses X
Manage Users X
Add new expert X
Manage Orders X
Order Details X

2.3 Non-UI Functions


# Feature System Function Description
Authentication User Manage user accounts, handles login sessions, verifies user
1 and Authentication identity, and controls access permissions to different parts
Authorization and Authorization of the platform.
Course Course Deal with the organization, storage, and retrieval of
2 Management Management courses. This includes functionalities for creating, editing,
and deleting content items.
Forum and Discussion Forums Involve managing discussion forums, user comments, and
Community and Community other community features. It includes functionalities for
3
Management creating and moderating discussion threads, managing user
interactions, and enforcing community guidelines.
Notification Notification and Send automated notifications to users about course
Communication updates, upcoming deadlines, new content releases, or
4 other relevant information. It may also include
functionalities for sending emails or messages to individual
users or groups.
Payment Payment Handles payment transactions, securely processes payment
5 Processing information, and manages subscription or billing details
with paid courses or premium features.
Learning Tools Integration with This function manages data exchange and interoperability
Learning Tools between the platform and external systems such as
6
learning management systems (LMS), video conferencing
platforms, or content repositories.

3. High Level Design


3.1 Database Design
[Provide the tables relationship like example below]
3.1.1 Database Schema

GAMS-SRS_v1.0 Page 8 / 35
3.1.2 Table Descriptions

No Table Description

GAMS-SRS_v1.0 Page 9 / 35
01 Roles Store information of all roles
- Primary key: role_id
- Foreign key: none
- Unique key: role_name
02 Users Stores information of all accounts
- Primary keys: user_id
- Foreign keys: role_id
- Unique keys: username, email
03 Experts Stores information of expert’s account
- Primary keys: expert_id
- Foreign keys: user_id
- Unique keys: user_id
04 Categories Stores all types of courses
- Primary keys: category_id
- Foreign keys: none
- Unique keys: name
05 Courses Stores information of all courses
- Primary keys: course_id
- Foreign keys: category_id
- Unique keys: none
06 ExpertCategories Stores all experts’s majors
- Primary keys: (expert_id, category_id) (both of them are same as 1 pk)
- Foreign keys: expert_id, category_id
- Unique keys: none
07 ExpertCourses Stores all courses’s owners
- Primary keys: (expert_id, course_id) (both of them are same as 1 pk)
- Foreign keys: expert_id, course_id
- Unique keys: none
08 Sections Stores all course’s sections
- Primary keys: section_id
- Foreign keys: course_id
- Unique keys: none
08 Lectures Stores all section’s lectures
- Primary keys: lecture_id
- Foreign keys: section_id
- Unique keys: none
08 Articles Stores all lecture’s articles
- Primary keys: article_id
- Foreign keys: lecture_id
- Unique keys: none
08 Videos Stores all lecture’s video
- Primary keys: video_id
- Foreign keys: lecture_id
- Unique keys: none
08 Exams Stores all lecture’s exams
- Primary keys: exam_id
- Foreign keys: lecture_id

GAMS-SRS_v1.0 Page 10 / 35
- Unique keys: none
08 ExamQuestions Stores all exam’s questions
- Primary keys: question_id
- Foreign keys: exam_id
- Unique keys: none
ExamChoices Stores all question’s choices
- Primary keys: choice_id
- Foreign keys: question_id
- Unique keys: none
UserChoices Stores all user’s choices
- Primary keys: (user_id, choice_id) (both of them are same as 1 pk)
- Foreign keys: user_id, choice_id
- Unique keys: none

09 UserProgress Stores all progress of customers with contents of the courses


- Primary keys: (user_id, content_id) (both of them are same as 1 pk)
- Foreign keys: user_id, content_id
- Unique keys: none
10 Cart Stores all courses are in customer’s cart
- Primary keys: (user_id, course_id) (both of them are same as 1 pk)
- Foreign keys: user_id, course_id
- Unique keys: none
11 Orders Stores all orders that customers purchased
- Primary keys: order_id
- Foreign keys: user_id
- Unique keys: none
12 OrderItems Stores all courses that are purchased in a order
- Primary keys: (order_id, course_id) (both of them are same as 1 pk)
- Foreign keys: order_id, course_id
- Unique keys: none
13 Feedback Stores all feedback of the customers in a course
- Primary keys: feedback_id
- Foreign keys: user_id, course_id
- Unique keys: none

GAMS-SRS_v1.0 Page 11 / 35
3.2 Code Packages
3.2.1 Package Diagram

3.2.2 Package Descriptions


No Package Description
01 web Contains normal html and jsp files and some special packages
02 admin Contains html and jsp files for admin pages
03 expert Contains html and jsp files for expert pages
04 java Contains all java files
05 dao Contains all java files that contact with sql database
06 entity Contains all java class files
07 control Contains all servlets.

GAMS-SRS_v1.0 Page 12 / 35
II. Functional Requirements
[Provide descriptions about the system’s functions/screens. The functions/screens are grouped by the
system features, and even sub-features if needed. For the screens, you need to provide the screen
layouts (mock-up screens) and relevant specifications if needed]
[Link] Features
1.1 User Login
This screen allows user to be authenticated to the system screens/functionalities.

S1. Login to website

s2. Log in with google

GAMS-SRS_v1.0 Page 13 / 35
Field Name Field Type Description
Username Text Box This is for the user to input a valid username for logging in
Password Textbox This is for user to input password for logging in
Login Button User clicks to authenticate him/herself into the system with
provided email & password
Show Password Checkbox User can check this box to toggle the visibility of the
password
Forgot Password? Hyperlink User clicks to redirect to the Password Reset page for
resetting his/her forgot password
Login with Google Hyperlink Allow user to login with his/her Google account
Sign up now Hyperlink User clicks to redirect to the User Register page

Database Access
Table CRUD Description
User R Get exist username
User R Verify UserName & Password information
User R Get Lock time
User U UpdateFailedAttempt
User U Reset Failed Attemp
User U Update Lock Time

1.2 Forgot password

GAMS-SRS_v1.0 Page 14 / 35
Field Name Field Type Description
Email Address String (255) The user enters the email account registered in the system
here.
Send Mail Hyperlink Redirect sending otp code to email and enter the code, click
again to go to reset password
Sign up Button The user clicks to go to the account registration page
Login Hyperlink User clicks on login redirected to login page
Email OTP String (255) Users enter the OTP code sent via email here.
New Password String (255) User enters a new password here.
Confỉm New String (255) Users confirm the new password they want to set here.
Password
Submit Button Click to save password changes

GAMS-SRS_v1.0 Page 15 / 35
Login with Google Hyperlink Clicking "Login with Google" will redirect to sign in with a
google account
Login with Hyperlink Clicking "Login with Facebook" will redirect to sign in with a
Facebook Facebook account

Database Access

Table CRUD Description


User RU Query the list of current user from the database
Update password of a specific account.

1.3 Home page

1.4 View product list

GAMS-SRS_v1.0 Page 16 / 35
Field Name Field Type Description
Home Hyperlink User clicks to go to home page.
About Hyperlink About the site.
Course Hyperlink Click to display the course list page.
Pages Hyperlink Click to see course creation experts.
Contact Hyperlink Contact about website.
John Now Hyperlink Click to login or register.
Read more Hyperlink Click to go to the course details page.

GAMS-SRS_v1.0 Page 17 / 35
Database Access

Table CRUD Description


course R Read and display the list of courses

1.6 Search course

GAMS-SRS_v1.0 Page 18 / 35
Field Name Field Type Description
Search by name String (255) Users can search for courses by name.
All categories Option Users can search for courses by category.
Search Button Users click to search for courses by name or category.
Read more Hyperlink Click to go to the course details page.

Database Access

Table CRUD Description


course R Read and display the list of courses, including
search functionality

GAMS-SRS_v1.0 Page 19 / 35
1.7 View course details

Field Name Field Type Description


Enrol Button Click to buy the course

Database Access

Table CRUD Description


course R Read and display the details of a specific course
cart CU Create a new cart item and update the current cart

2. Expert Features
2.1 Expert List in About us page

GAMS-SRS_v1.0 Page 20 / 35
Field Name Field Type Description
Name Text Box Name of the expert
Social Media Links/Icons Links to the expert's social media profiles (e.g., Facebook,
Links Twitter, LinkedIn)
Description Text Area/String Short description or bio of the expert
Data Table
Data Actions
Image Image Picture of the expert. Click the image to view the detail of that
expert
Database Access
Table CRUD Description
Expert R Get the expert List

2.1 Expert Information page

Field Name Field Type Description


Name Text Box Name of the expert
Social Media Links/Icons Links to the expert's social media profiles (e.g., Facebook,
Links Twitter, LinkedIn)
Description Text Area/String Short description or bio of the expert
Image image Picture of the expert
Certifications Text List of certifications the instructor holds
Experience Text Number of years of experience the instructor has
Data Table
Data Actions
View Courses Button Redirects to a page listing all the courses taught by the
instructor

GAMS-SRS_v1.0 Page 21 / 35
Database Access
Table CRUD Description
Expert U Get the expert by id

Sql Command
1/ Get the expert by id
SELECT * FROM Experts e JOIN Users u ON e.user_id = u.user_id WHERE expert_id = ?

2.1 Expert Interface in Expert Home

Section Description
Manage Course Expert can manage course their talk

GAMS-SRS_v1.0 Page 22 / 35
Section Description
View feedback Expert can view feedback about their course
View revenue Expert can view profit of their course
Upload course Expert can update or create course and course content
2.1.1 Manage Course

Field Name Field Type Description


Id Integer Unique identiifier of course
Course name Text Name of the course
Participants Integer Number of leaner enjoyed course
Image image Picture of the expert
Average rating Decimal Average of rating about course
Status Text Status of the course in system
Data Actions
Edit Button Edit information about course
Database Access
Table CRUD Description
Course R Get the detail about course

GAMS-SRS_v1.0 Page 23 / 35
2.1 Expert create or update course

Section

Field Name Field Type Description


Section ID Integer Unique identifier of section
Section Title Text Title of the section
Data Actions
Delete Section Button Button to delete section
Add Section Button Button to add section
Database Access
Table CRUD Description
Section R Add a new section
Section R Delete a section by section id

Lecture

Field Name Field Type Description


Lecture ID Integer Unique identifier of lecture
Lecture Title Text Title of the lecture
Data Actions
Add lecture Button Button to add lecture
Delete lecture Button Button to delete lecture
Database Access
Table CRUD Description
Lecture R Insert a new lecture
Lecture R Delete a lecture by lecture id

GAMS-SRS_v1.0 Page 24 / 35
3. Admin Features
3.1 Admin interface

Section Description
Manage Course Admin can view and edit course and course information
Manage Customer Admin can view all customer information
Expert Manage Admin can view and edit all expert information
View Reports Admin can view and manage all reports from customers

3.1.1 Mange Course section

GAMS-SRS_v1.0 Page 25 / 35
Field Name Field Type Description
ID Text Unique identifier of the course
Course Name Text Name of the course
Instructor Text Name of the instructor(s)
Status Text Current status of the course (e.g., Active, Inactive)
Certifications Text List of certifications the instructor holds
Experience Text Number of years of experience the instructor has
Data Table
Data Actions
Delete course Button delete button of each course
Edit course Button send redirect to detail course by course id
Database Access
Table CRUD Description
Course R Get all course
Course R Get course by id
Course R Delete course

3.1.2 Manage customer section

Field Name Field Type Description


ID Text Unique identifier of the customer
Customer Name Text Name of the customer
Email Text Email address of the customer
Phone Text Phone of the customer

GAMS-SRS_v1.0 Page 26 / 35
Field Name Field Type Description
Data Table
Data Actions
Delete customer Button delete button of each customer
Edit customer Button send redirect to detail customer by customerID
Database Access
Table CRUD Description
Users U Get all users
Users U Get users by id
Users R Delete users
3.1.3 Manager Expert Section

Field Name Field Type Description


ID Text Unique identifier of the expert
Name Text Name of the expert
Email Text Email address of the expert
Specialty Text Areas of expertise of the expert
Data Table
Data Actions
Delete expert Button delete button of each expert
Edit expert Button send redirect to detail customer by expertID
Database Access
Table CRUD Description
Expert U Get all experts
Expert U Get experts by id
Expert R Delete experts
3.1.4 View Pending Course

GAMS-SRS_v1.0 Page 27 / 35
Field Name Field Type Description
ID Integer Unique identifier of the course
Course Name Text Name of the course
Category Text Identifier of course category
Price Decimal Price of the course
Created At Date Date when course created
Updated At Date Date when course updated
Status Text Status of the course
Data Table
Data Actions
View Detail Button View detail of the course which is pending
Database Access
Table CRUD Description
Course U Get all course which is pending
Course U View detail of course by ID
3.1.5 View Monthly Revenue

Field Name Field Type Description


Select Year Drop down Dropdown to select the year
View Revenue Button Button to view revenue of this year
Months Static Show static of this month
Data Actions

GAMS-SRS_v1.0 Page 28 / 35
Database Access
Table CRUD Description
Orders U Get Monthly static by Date Month
3.1.6 View Monthly Revenue

Field Name Field Type Description


ID Integer Unique identifier for
Username Text Button to view revenue of this year
Email Text Show static of this month
Total Spending Decimal Total spending of the customer in dollars
Data Actions

Database Access
Table CRUD Description
Orders U Gen top 5 customer by user id

3.2 Admin modification

3.2.1 Edit expert Information

GAMS-SRS_v1.0 Page 29 / 35
Field Name Field Type Description
Name Text Name of the expert
Email Text Box Email address of the expert
Specialty Text Areas of expertise of the expert
Data Table
Data Actions
Save Button Save the changes made to the expert information
Database Access
Table CRUD Description
Expert U Get experts information by id
Expert R Insert new information for expert
[Link] Course taught by Expert

GAMS-SRS_v1.0 Page 30 / 35
Field Name Field Type Description
ID Text Unique identifier of the course
Course Name Text Name of the course
Description Text Area Detailed description of the course
Data Table
Data Actions
View course Button View course button
Database Access
Table CRUD Description
Course U Get course by id
3.2.1 Approve of reject pending Course

GAMS-SRS_v1.0 Page 31 / 35
Section

Field Name Field Type Description


Section ID Integer Unique identifier of section
Section Title Text Title of the section

Lecture
Field Name Field Type Description
Lecture ID Integer Unique identifier of lecture
Lecture Title Text Title of the lecture

GAMS-SRS_v1.0 Page 32 / 35
Data Actions
Approve Button Change status of course to approved
Reject Button Change status of course to rejected

3.3 Admin Creation

Field Name Field Type Description


Name Text box Name of the expert
Password Text Box Enter password for the expert
Specialty Drop Down Areas of expertise of the expert
Email Text Box Enter email address of the expert
Bio Text Area Enter bio(description) of expert

Data Actions
Create Expert Button Insert into database new account
Account
Database Access
Table CRUD Description
Expert R Insert new information for expert

III. Detailed Designs


1.1 Class Diagram

GAMS-SRS_v1.0 Page 33 / 35
GAMS-SRS_v1.0 Page 34 / 35
1.2 Sequence Diagram
1.2.1. Common feature
[Link] Reset password

[Link] Login

GAMS-SRS_v1.0 Page 35 / 35
[Link] View product list

[Link] Search Course

GAMS-SRS_v1.0 Page 36 / 35
[Link] View Course Details

[Link] feature

GAMS-SRS_v1.0 Page 37 / 35
[Link]. Edit Expert Information

[Link] View all Customer account

GAMS-SRS_v1.0 Page 38 / 35
[Link] View all Course

GAMS-SRS_v1.0 Page 39 / 35
1.2.5 Expert account management

GAMS-SRS_v1.0 Page 40 / 35
1.2.6 View Payment history

GAMS-SRS_v1.0 Page 41 / 35
1.2.7 View owned course detail

1.2.8 View votes and feedback

GAMS-SRS_v1.0 Page 42 / 35
1.2.9 View about business

1.3 Database Queries


1.2.1 Login
1/ Verify UserName & Password information

GAMS-SRS_v1.0 Page 43 / 35
SELECT * FROM Users where username=? and password=?

2/ Verify accessible username


SELECT * FROM Users where username=?

3/ Get LockTime of username


SELECT [Link] FROM Users u where username=?

4/Update failed attempt


UPDATE users SET failedAttempt = failedAttempt + 1 WHERE username = ?

5/ Reset failed Attempt


UPDATE users SET failedAttempt = 0 WHERE username = ?

6/ Update lock time


UPDATE Users SET lockTime = ? WHERE username = ?
1.2.2 Edit expert information
1/ Get all expert
SELECT * FROM Experts e JOIN Users u ON e.user_id = u.user_id
2/ Get category of expert
select * from Experts join ExpertCategories e on c.expert_id = e.expert_id
+ "join Categories ca on e.category_id = ca.category_id
3/ Get expert by id
SELECT * FROM Experts e JOIN Users u ON e.user_id = u.user_id WHERE expert_id = ?
4/ Get course of expert
select * from ExpertCourses ec
join Experts e on ec.expert_id = e.expert_id
join Courses c on ec.course_id = c.course_id
5/ Update username or password of expert
update Users set username = ?, email = ?
where user_id = (select e.user_id from Experts e where expert_id = ?)
6/ Update category of expert
UPDATE Categories SET name =
WHERE category_id = (SELECT category_id FROM ExpertCategories WHERE expert_id = ?

1.2.3 View all customer account


1/ View all customer

SELECT * FROM Users


1.2.4 View all course
1/ Get all course
SELECT * FROM Courses
2/ Get Experts of each course
select [Link], [Link], c.course_id from
ExpertCourses ec
join Experts e on ec.expert_id = e.expert_id
join Courses c on ec.course_id = c.course_id
join Users u on e.user_id = u.user_id

GAMS-SRS_v1.0 Page 44 / 35
1.2.4 Forgot password
1/ Check exist email
SELECT * FROM Users WHERE email=?l

IV. Appendix
1. Assumptions & Dependencies
AS-1: All students and instructors will have reliable internet access to participate in online courses
without interruptions.
AS-2: The online course platform will be compatible with various operating systems and devices (e.g.,
desktops, laptops, tablets, and smartphones).
AS-3: Instructors will have the necessary skills to create and manage online course content effectively.
AS-4: Students will have basic digital literacy skills to navigate the online course platform.
AS-5: The institution will provide adequate technical support for both students and instructors to
resolve any issues that arise with the online platform.
AS-6: The necessary licenses for any third-party software or tools used within the online course
platform will be obtained and maintained.

DE-1: The online course platform must integrate with the institution’s existing student information
system for seamless enrollment and grade management.
DE-2: The online course platform must support bi-directional communication with external learning
management systems (LMS) if required.
DE-3: The platform must comply with relevant data protection and privacy regulations to ensure the
security of users' personal information.

2. Limitations & Exclusions


● The online course platform will not include virtual reality (VR) or augmented reality (AR)
capabilities in the initial release.
● There will be no support for offline access to course materials; an internet connection will be
required to view and interact with content.
● Customizable branding for individual courses or instructors is not planned; the platform will
have a standard, uniform interface for all users.
● Advanced analytics or learning analytics beyond basic usage statistics (e.g., time spent on
modules, completion rates) will not be included.
● The platform will not offer integrated payment processing for paid courses or certification
programs; payment will need to be handled through a separate system.
● Live translation or multilingual support beyond a specified set of languages will not be available.
● There will be no built-in plagiarism detection tools in the initial release; instructors will need to
use external tools for this purpose.

GAMS-SRS_v1.0 Page 45 / 35
GAMS-SRS_v1.0 Page 46 / 35

You might also like