0% found this document useful (0 votes)
13 views82 pages

GroupM 83909

Uploaded by

thur.thunder.3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views82 pages

GroupM 83909

Uploaded by

thur.thunder.3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 82

Module Code & Module Title

CS5002NT– Software Engineering

Assessment Weightage & Type


20% Group Coursework

Semester
2023 Autumn/Spring

Group members
London Met ID Student Name
22072220 Subin Rai
22073081 Rabin Rai
22072224 Sujal Rai
22072105 Sushant Dahal
22072230 Ayush Tamang

Assignment Due Date: 2024/01/05


Assignment Submission Date: 2024/01/05
Word Count: 9690
I confirm that I understand my coursework needs to be submitted online via Google Classroom under the
relevant module page before the deadline in order for my assignment to be accepted and marked. I am
fully aware that late submissions will be treated as non-submission and a mark of zero will be awarded
Acknowledgment
We want to express our gratitude to our module teacher Mr. Pratik Sedhain and the
college for allowing us to be part of this project. A big thank you to our team members
who worked with dedication on various aspects of the project. we also appreciate the
timely and valuable suggestions from both our module teachers that greatly helped the
project move forward.
Our sincere thanks to everyone for their generous cooperation, which played a crucial
role in the success of this project. In conclusion, we extend our heartfelt appreciation to
all our friends and the teaching staff, whose direct or indirect contributions were
instrumental in our journey.
Table of Contents

1 Introduction .............................................................................................................. 1

2 Project Charter ......................................................................................................... 2

2.1 Problem statement ............................................................................................. 2

2.2 Business case .................................................................................................... 2

2.3 Goal Statement .................................................................................................. 2

2.4 Timeline ............................................................................................................. 2

2.5 Scope ................................................................................................................. 3

2.6 Team Member .................................................................................................... 3

3 Software Requirement specification (SRS) .............................................................. 4

3.1 Functional Requirements ................................................................................... 4

3.2 Non-Functional Requirements............................................................................ 8

1.1.1 Design and Implementation Constraints ...................................................... 9

1.1.2 External Interfaces Required ....................................................................... 9

1.1.3 Other Non-Functional Requirements ......................................................... 10

4 Group Task ............................................................................................................ 11

4.1 Data Flow Diagram (DFD) ................................................................................ 11

4.1.1 Data Flow Diagram Level 0(Context level diagram) .................................. 11

4.1.2 Data Flow Diagram Level 1 ....................................................................... 12

4.1.3 Data Flow Diagram Level 2 ....................................................................... 13

4.2 Internal Module Specification ........................................................................... 15

4.2.1 Entity Relational Diagram (ERD) ............................................................... 15

5 Data Dictionary....................................................................................................... 19

6 Process Specification ............................................................................................. 23

7 Design Specification............................................................................................... 26
7.1 Structured Chart ............................................................................................... 26

7.2 Assumption Diary ............................................................................................. 28

8 Individual Task ....................................................................................................... 38

8.1 Make payment.................................................................................................. 38

8.2 Purchase Plant ................................................................................................. 45

8.3 Report Preparation ........................................................................................... 52

8.4 Join The Program............................................................................................. 59

8.5 Take Certification Exam ................................................................................... 65

9 Summary ................................................................................................................ 73

10 References .......................................................................................................... 74
Table of Figures
Figure 1: level 0 DFD, Context Level Diagram .............................................................. 11
Figure 2: Level 1 DFD ................................................................................................... 12
Figure 3: DFD level 2, Register User............................................................................. 13
Figure 4: DFD Level 2, Purchase plant ......................................................................... 14
Figure 5: DFD Level 2, make payment .......................................................................... 14
Figure 6: Figure of Entity ............................................................................................... 15
Figure 7: Figure of Attribute........................................................................................... 16
Figure 8: Figure of Relationship .................................................................................... 16
Figure 9: Figures of cardinality ...................................................................................... 16
Figure 10: Entity Relational Diagram (ERD) .................................................................. 18
Figure 11:Structure Chart Symbol ................................................................................. 26
Figure 12: Structure Chart ............................................................................................. 27
Figure 13: Level 0 DFD of make payment ..................................................................... 38
Figure 14: Level 1 DFD of make payment ..................................................................... 39
Figure 15: Level 2 DFD of make payment ..................................................................... 40
Figure 16: Structure chart of make payment ................................................................. 41
Figure 17:Context Level Diagram of Purchase Plant..................................................... 45
Figure 18:Level 1 of Purchase plant .............................................................................. 46
Figure 19: Level 2 of Purchase plant ............................................................................. 47
Figure 20: Structure chart of purchase plant ................................................................. 48
Figure 21 Level 0 DFD of report preparation ................................................................. 52
Figure 22: Level 1 DFD of Report preparation .............................................................. 53
Figure 23 Level 2 DFD of process view report .............................................................. 54
Figure 24 Structure chart of Report Preparation ........................................................... 55
Figure 25: DFD level 0 of Join the program................................................................... 59
Figure 26: DFD level1 of join the program ..................................................................... 60
Figure 27: DFD level2 of join the program ..................................................................... 61
Figure 28: Structure of Join the program ....................................................................... 62
Figure 29 Context Diagram of Take Certification Exam. ............................................... 65
Figure 30: Level 1 DFD of Take Certification Exam. ..................................................... 66
Figure 31 Level 2 DFD of Take Certification Exam. ...................................................... 67
Figure 32 Structure Chart of Take Certification Exam. .................................................. 68
Table of Tables
Table 1: Team Member ................................................................................................... 3
Table 2: Functional Requirement, Function and sub function ......................................... 7
Table 3: Group Task...................................................................................................... 32
Table 4: Meeting one details ......................................................................................... 33
Table 5: Meeting two details .......................................................................................... 34
Table 6: Meeting three details ....................................................................................... 35
Table 7: Meeting four details ......................................................................................... 36
Table 8:Meeting five details ........................................................................................... 37
CS5002NT Software Engineering

1 Introduction
This is an assessment assigned to a group of 4 or 5 students. For this project, we five
students were assigned in a team to solve the question. In this assessment, we are given
a task to develop a community for McGregor Institute of Botanical Training. It is an
institute that provide Ireland based training located in Godawari. They provide different
undergraduate and postgraduate courses based on agriculture along with horticulture
specialization. The sudden surge of student interest in agriculture had them to think to
start short-term certificate related to horticulture.

Our team had a discussion on how to solve the problem they are facing, and we come
into the conclusion of developing a website for their institute. The website will provide
them online information about the short-term certificate. This website can help them to
sell different types of plants in low-cost or free in some cases. The interested students
can enroll from here and the institute will come up with proper plan on how to provide the
education to all the interested one’s. The students can share their ideas in this forum,
post their curiosity or problem and the experts can provide them with proper solution.

1
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

2 Project Charter
Project charter is an overview of the project that describes the goals, objectives, and
scopes. It provides clarity among the team members and stakeholders. Its shows a clear
roadmap to succession of a project.

2.1 Problem statement


McGregor Institute of Botanical Training currently have limited resources for
agriculture course and the sudden surge of student’s interest in domain of agriculture
have them fear they may not be able to enroll all the students that want to apply for their
institute and cause them to lose the chance to increase their profit by 20%.

2.2 Business case


The main motive of this project is to introduce new courses to the people to make
them enroll in their institute without any problem. This will lead their institute to gain more
profit than their current profit.

2.3 Goal Statement


The enrollment rate of student is 60% and the project's goal is to increase the
student enrollment rate by 20% and profit rate by 20%. To develop a community in a
website where all the interested people in plant can share their ideas, post queries to be
answer by the experts.

2.4 Timeline
The project is to develop an online website to achieve the above-mentioned goals.
It is estimated to be completed within 1.5 months from initiation to finish. The initial 5 days
will be dedicated to gathering requirements. Following that, our team will spend the 10
days constructing a system design. The remaining time will be allocated for the
development team to implement and test the system over the next month.

2
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

2.5 Scope
The scope defines what is included and excluded in the project. The project scope
includes educational offering, community building, and e-commerce service. The scopes
of this project are: -
1. Introduce the short-term certification on horticulture.
2. A full-stack website provides for registering members, posting questionnaire,
displaying plants, and providing institute-related news.
3. A backend will handle the registering, store data of members, and store the request
related to plants.
4. Build a community using an online forum.
5. Different kinds of plants will be sold in low cost and for free in some situations.
6. Organize programs to protect rare plants and forests.
7. 5 member, one front-end, one back-end, one designer, one QA, and one as Project
Manager.

2.6 Team Member

London Met ID Team Member Roles


22072220 Subin Rai Project Manager
22073081 Rabin Rai Developer
22072224 Sujal Rai QA
22072105 Ayush Tamang Designer
22072230 Sushant Dahal Developer
Table 1: Team Member

3
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

3 Software Requirement specification (SRS)


The Software Requirement Specification (SRS), also known as the SRS document.
The SRS includes all the information of functional and non-functional requirements of the
software. This document makes all the people engaged in the project understand the
projects propose and goals. It reduces the developer's time and effort required to achieve
their goals and the development cost. (Romani, 2022)

3.1 Functional Requirements


Functional requirements are like a Wishlist for what we want a program or system
to do. In simpler terms, they are a set of instructions that describe the things we expect a
software or a combination of software and electronics to be able to do. It's similar to giving
clear instructions to the creators about the specific features and tasks we want our new
tool or gadget to have. (Tech Target Contirbutor, 2023)

The functional requirements as must-haves for our system are:

SN Functions and Sub Description


Functions
1 Register Member
Users should fill out a registration form
1.1 Member Registration Form providing personal details such as name,
age, address, phone number, and email.
1.2 User Authentication User should be able to log in using their
member ID, phone number, or email
address.

2 Join the Program


Users can join the program for graduate or
2.1 Join program postgraduate studies as well as certificate-
oriented short courses.

4
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

2.3 Program type The program offers both paid and unpaid
course options.

3 Purchase plants
3.1 View Available Plants Members should be able to view a list of
available plants and horticultural kits with
descriptions and prices.
3.3 Order Management Members should be able to cancel orders
within 24 hours of placement.
3.6 Add to cart Users should add the selected plants to the
cart before making a payment.
3.7 Bulk Order Users should be able to place orders for large
quantities.

4 Payments
4.1 Purchase History Members should be able to view their
purchase history.
4.2 Order Payment Members should be able to pay orders for
plants and enroll courses.
Payment should be facilitated through
integrated payment gateways.
4.3 Feedback and Ratings Members should be able to provide
feedback, comments, and ratings for their
purchase experience.

5 Ask for recommendation


Members can post queries, viewing advice or
5.1 Users can view recommendations from experts. The system
recommendations on plant will notify relevant experts and facilitate
care responses within the forum.

5
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

5.2 User can post Users should be able to post queries seeking
recommendations or advice.
5.3 Expert reply Experts can provide replies to user queries,
offering recommendations and insights.

6 Create Report
6.1 Fetch Performance Scores Trainers should be able to fetch the
performance scores of students using their
member IDs.
6.2 Calculate Average Points Trainers should be able to calculate the
average points for each student based on
their performance scores.
6.3 Generate Performance Report Trainers should be able to generate
performance reports for students based on
their average points.
6.4 Email Reports Trainers should be able to email performance
reports to respective students along with
feedback.

7 Take Exams
7.1 Access Practice Test Papers Members interested in horticultural training
should be able to access practice test papers
and related videos.
7.2 Exam Application Members should be able to apply for exams
through the system.
7.3 Exam Paper Management Trainers should be able to update or delete
test papers as needed.
7.4 View Exam Result After completing a certification exam,
students can utilize the "View Exam Result"
feature to access their performance details.

6
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

8 Forum
8.1 Platform for plant enthusiasts Members can participate in forum
to discuss ideas. discussions, post topics, and engage in
conversations related to plants, horticulture,
and related programs.
8.1 Comment and vote up Users can participate in forum discussions by
adding comments and expressing approval
through the voting up feature.

9 Get Notification
9.1 Notification for Forum Activities Members will receive notifications for new
forum posts, replies to their posts, and other
relevant activities within the forum.
9.2 Course and Exam Notifications Students will receive notifications for
upcoming courses, exam schedules, and
other relevant updates related to their
enrolled programs.
Table 2: Functional Requirement, Function and sub function

7
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

3.2 Non-Functional Requirements


Non-Functional Requirements are the requirements that are the types of features that
make any project qualitative. These are like the limit that must be achieved to have a
successful project development. It defines how the project will run. It can be speed,
security, reliability, compatibility, and user friendly. Some of the non-functional
requirements are:
1) Scalability
The system should be able to handle any amount of user and Down Time should minimize
during scaling activities. System should be Highly Available to ensure that the system
remains accessible and operational at any time.
2) Security
The data related to users should be stored by encrypting. The user data should be
secured. Specially while doing payment and Registering member user details should be
secured.
3) Usability
The user should be able to use the website without facing any issues. The UI/UX should
be simple so that non-technical users or person can understand it. There should be help
and support available to assist users.
4) Maintainability
It should be easy to add new features, and bugs and glitches should be removed or
update in version control. These changes should be implemented without any hindrance,
and through documentation it is essential to ensure understanding and facilitate
modifications for other developers.
5) Reliability
The website must maintain consistency and accuracy under various conditions. It should
be capable of handling failures, whether they are hardware, software, or network-related,
and ensure highly availability while minimizing downtime. Our primary goal is to minimize
and address such issues to enhance overall reliability.

8
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

6) Performances
The website should not face any lag issue and should run smoothly. It should be
responsive, with efficient processing time and memory utilization. So, the user experience
should be seamless, providing quick response times, and ensuring optimal performance.

1.1.1 Design and Implementation Constraints


1. The website will be developed using Html, CSS, and JavaScript.
2. The user related data will be stored in Microsoft SQL Server database.
3. User will be able to access the site from any device having internet connection.
4. User should get a unique username.

1.1.2 External Interfaces Required


1. User Interfaces
• User manual
• Multi language Support
• Responsive design for compatibility with various screen sizes and devices
2. Hardware Interfaces
• Minimum of 2-3 GB ram.
• Internet Connection of at least 20Mbps.
• 2.10 GHz i5 processor.
3. Software Interfaces
• Web Browser latest version.
• Windows 10 or Windows 11.
4. Communication Interfaces
• Security protocol employed for HTTPS.
• E-mail protocols and Support.

9
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

1.1.3 Other Non-Functional Requirements


i. The software should be portable, allowing smooth transitions between operating
systems.
ii. The admin, staff, and member data should be stored, transferable, and backed up
to prevent data from corruption or deletion.
iii. The website should be capable of taking exams for at least 100 members
simultaneously and handle up to 1000 users (admin, staff, and member) making
requests at the same time.
iv. Multiple restrictions should be imposed on members and staff to prevent
unauthorized access.
v. Members can change their first password right after they sign in for the first time.
vi. Privacy of user should be maintained.

10
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

4 Group Task
4.1 Data Flow Diagram (DFD)
Data flow diagram (DFD) is a diagram that gives visual representation of how data
or information flows in a system. It uses multiple shapes or symbols likes rectangle, circle,
arrows and partial rectangle to illustrate flow of data. Each Process should have at least
one input and an output. They can range from simple, hand-drawn diagrams to multi-level
DFDs that provide a more detailed view of how data is processed. (Lucidchart, 2023)

4.1.1 Data Flow Diagram Level 0(Context level diagram)


A level 0 DFD is also known as context diagram. It gives an overview of a system
with simple details and providing high-level understanding. It also shows how information
flows between admin and guest. Entities are represented as squares and process are
represented as circles. (Lucidchart, 2024)

Figure 1: level 0 DFD, Context Level Diagram

11
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

4.1.2 Data Flow Diagram Level 1


An Level 1 Data Flow Diagram (DFD) gives a more detailed view of a system
compared to context diagram. It separates the main process from the picture of everything
into smaller parts called sub-processes. These smaller processes give extra details about
how the system works. In the Level 1 data flow diagram, each of these smaller processes
is shown as a separate thing. It goes further than Level 0 DFD by showing how big
processes are connected. The picture also shows how information moves within the
system and where it is stored. This gives us a clear view of what is happening in the
system. (GeeksfoGeeks, 2023)

Figure 2: Level 1 DFD

12
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

4.1.3 Data Flow Diagram Level 2


The Level 2 Data Flow Diagram (DFD) shows a detailed view of the system. It
breaks down into smaller parts, things found in the Level 1 DFD's sub-processes. Each
of these improved smaller steps are shown as separate processes on the Level 2 data
flow diagram. The picture also shows how data moves and where it is stored for each
particular small process. This level of detail gives a clearer and more detailed look at how
the system works. It tells us what happens in each smaller part of it, like interactions
between steps and sharing data inside them. Basically, a Level 2 DFD makes the
system's setup and procedures easier to understand by looking closer at its many parts.
(GeeksfoGeeks, 2023)

Figure 3: DFD level 2, Register User

13
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Figure 4: DFD Level 2, Purchase plant

Figure 5: DFD Level 2, make payment

14
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

4.2 Internal Module Specification


4.2.1 Entity Relational Diagram (ERD)
ER Diagrams are like visual maps for databases. They display how different elements,
such as entities, connect to one another and provide details about their characteristics.
To create these diagrams, we use shapes like rectangles, ovals, and diamonds. These
diagrams represent entities as rectangles, Relationships between entities are depicted
with diamonds, attributes as ovals. The primary purpose of ER Diagrams is to enhance
the understanding of a database logical structure. (Peterson, 2023)
i. Entities
Entities form the core of the database structure, represented as rectangles. They
enable efficient storage, retrieval, and management of data. Well-defined entities lead to
a well-organized and efficient database. In a database, an entity is a relation (table) where
data is collected and maintained. In the system, there can be multiple entities where data
is stored and maintained. Each entity is composed of multiple attributes. (geeksforgeeks,
2021)

Figure 6: Figure of Entity


ii. Attributes
Attributes are characteristics or properties of an entity. In simple terms, attributes can
be compared to columns in a relation (table). Each attribute, represented as ovals, has
its own datatype and can have constraints. These types of datatype and constraints
provide structure and ensure the consistency and integrity of the data within the database.
For example, there is an entity called "User," and it can have multiple attributes to
describe that entity, such as MemberID, UserName, Address, age, e-mail, and Phone
number. (Romford, 2023)

15
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Figure 7: Figure of Attribute

iii. Relationships
Relationships are a fundamental concept in DBMS. It illustrates how entities are linked
with each other and are represented as diamond shapes and arrows or lines(cardinality)
to show associate and dependencies between entities in relational database.
Relationships enable datasets to be shared and stored in separate tables. Without
relationships, the entire dataset structure would become useless. There are three main
types of relationships: one-to-one, one-to-many, and many-to-many. (Soni, 2022)

Figure 8: Figure of Relationship

Figure 9: Figures of cardinality

16
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

From the above scenario and data flow, we have identified following relevant entities
along with their attributes are given below

User - User_ID (Primary Key), User_Name, User_Address, User_Contact

Plant - Pant_ID (Primary Key), Plant_name, Stock, Description, price,


Purchase_ID(Foreign Key)

Purchase – Purchase_ID (Primary Key), Purchase_Date, Quantity, Unit_Price,


Total_Amount

Payment – Payment_ID, Gross_Amount, Payment_Date, Purchase_ID(foreign Key),


Enrollment_ID(Foreign Key)

Report – Report_ID (Primary key), Title, Report_Date, Admin_ID (Foregin Key),


User_ID(Foregin Key), Payment_ID(Foreign Key)

Admin – Admin_ID (Primary Key), Admin_Name, Admin_Contact, Admin_Gmail

Exam - Exam_ID(Primary Key), Duration, Exam_Type, Course_ID(Foreign Key)

Exam Details – Exam_ID*(Foreign Key), User_ID*(Foreign Key), Exam_Date, Result

Forum – Forum_ID(Primary Key), Forum_Name, Forum_Type

Course – Course_ID(Primary Key), Course_Name, Course_Price, Enroll_ID*(Foreign


Key)

Enrollment – Enroll_ID(Primary Key), Enroll_Date, User_ID*(Foreign Key)

17
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Figure 10: Entity Relational Diagram (ERD)

18
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

5 Data Dictionary
A data dictionary is a collection of names, definitions, and attributes related to data
elements within a database or project. Its primary role is to clarify the meanings and
purposes of these data elements, offering guidance for their interpretation and
establishing accepted meanings. By providing essential metadata about data elements,
the data dictionary facilitates in defining the scope, characteristics, and rules governing
their usage. This organized and easily searchable resource serves to prevent data
inconsistencies across projects, offering a comprehensive list of data elements. Its
purpose extends to simplifying the structure of system data requirements and reducing
data redundancy, making it an accessible tool for individuals, even those without technical
expertise, to understand and utilize effectively in various contexts. It uses various
operators. (Chai, 2024)
User
User = User details + User records *DATA STORE*
User records = {User details}*
User details = User_ID + User_name + User_Contact + User_Address + User_email +
registration_status
User_ID = Interger
User_Name = String
User_Contact = Big Integer
User_Address = String
User_email = String
Registration_Status = [“True”, “False”]

Program
Program = Program details + Program records *DATA STORE*
Program records = {Program details}*
Program details = Program_ID + Program_name + Program_type
Program_ID = Integer
Program_Name = String
Program_type = String

19
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Plant
Plant = Plant details + plant records *DATA STORE*
Plant records = {Plant details}*
Plant details = Plant_ID + Plant_Name + plant_Type + Plant_Description + Plant_price
Plant_ID = Integer
Plant_Name = String
Plant_Type = String
Plant_Description = String
Plant_Price = float

Payment
Payment = Payment details + Payment records *DATA STORE*
Payment records = {Payment details}*
Payment details = Payment_ID + Payment_Type + Payment_Amount + Payment_Date
+ GrossAmount
Payment_ID = Interger
Payment_Type = String
Payment_Amount = Integer
Payment_Date = DATE
GrossAmount = float

Recommendation
Recommendation = Recommendation details + Recommendation records *DATA
STORE*
Recommendation records = (Recommendation details)*
Recommendation details = Recommendation_ID + Recommendation_content +
Recommendation_type + soil condition
Recommendation_ID = Interger
Recommendation_content = String
Recommendation_type = [“Plant”,”Course”]
Recommendation_context = [“location”, “soil condition”]

20
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Report
Report = Report details + Report records *DATA SORE*
Report records= (report details)*
Report details = Report_ID + Report_Title + Report_Date + Report_Type
Report_ID = Integer
Report_Title = String
Report_Date = DATE
Report_Type = [“User report”, “sales report”, “exam report”]

Exam
Exam = Exam details + Exam record *DATA STORE*
Exam records = {Exam details}*
Exam details = Exam_ID + Test_ID + Exam_result + Exam_type+ Exam_Mark +
Duration
Exam_ID = Interger
Test_ID = Integer
Exam_result = String
Exam_type = String
Exam_Mark = Integer
Duration = Integer

Forum
Forum = Forum details + Forum record *DATA STORE*
Forum record = {Forum details}*
Forum details = Forum_ID + Forum_name+ Forum_Date +Forum_type
Forum_ID = Integer
Forum_Name = String
Forum_type = String

Notification
Notification = Notification details + notification record *DATA STORE*

21
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Notification record = {notification details}*


Notification details = Notification_ID + Notification_Type
Notification_ID = Integer
Notification_Type = [“Exam”, “Product”, “Forum”]

22
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

6 Process Specification

Process Number: 1.2


Process Name: Check User
Description: This process checks whether the user details is available in data store or
not.
Inputs: Verified Users details
Outputs: Gmail
Problem Logic:
a. It receives the verified users details from process 1.1.
b. Get the users details from data store (User).
c. It checks if the input data matches any existing data.
d. If the data is not available, set Gmail to specific value, else false.
e. Forward the Gmail to process 1.3 .

Process Number: 5.2


Process Name: Check plant availability
Description: This process checks whether the given plant is available in data store or
not.
Inputs: Verified plant details
Outputs: Plant_ID
Problem Logic:
a. It receives the plant details from process 5.1.
b. Get the plant details from the data store (Plant).
c. It checks the provided plant details with the plant details from data store for
any matching details.
d. If the plant is available, set Plant_ID as the input value, else false.
e. Forward Plant_ID to process 5.3.

23
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Process Number: 7.1


Process Name: Calculate Total Amount
Description: This process checks whether the payment is for purchase or enrollment and
retrieve the purchase details from data store accordingly and calculate the total amount.
Inputs: Purchase details
Outputs: Total_Amount
Problem Logic:
a. It receives purchase details from user.
b. Get the purchase details from the data store (Purchase and Enrollment).
c. It checks if the payment is for plant purchase or course enrollment.
d. If the payment is for only one of them it set the Total_Amount as it is, else calculate
the Total_Amount by adding the price of both purchase.
e. Forward the Total_Amount to process 7.2.

Process Number: 1.3


Process Name: Update users
Description: This process checks if the input is User_ID or empty and update the data
store accordingly.
Inputs: User_ID, Verified Gmail
Outputs: Display Registration Status
Problem Logic:
a. It receives the User_ID and verified Gmail from process 1.2.
b. It checks if the User_ID is inputed value or null.
c. If the User_ID is available it updates the data store, else skip the task.
d. Forward the registration status to user.

Process Number: 7.4


Process Name: Generate invoice
Description: This process generates invoice after the completion of payment.
Inputs: Verified payment details

24
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Outputs: Display Payment Status


Problem Logic:
a. It receives verified payment details from process 7.3.
b. It checks if the payment is verified or not.
c. If the payment is verified it update the data store (payment), else skip the process.
d. It the payment is verified and stored in data store, it generates the invoice for user.
e. Forward the payment status, and invoice to user.

25
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

7 Design Specification
7.1 Structured Chart
A structure chart is like a map for building software. It shows how different parts of
the system fit together and work with each other. It helps developers create complex
programs by providing clear guidance. By outlining functions and subroutines it ensures
that the design is organized and works well. (Holmes, 2023)

Figure 11:Structure Chart Symbol

A Structure Chart shows how a system is organized into different parts that do
specific jobs. It gives a detailed breakdown of the whole system, explaining what each
part does. The chart divides the system into "black boxes," where users know what the
system does overall but not exactly how it works inside. Users provide inputs to these
black boxes, and they give the needed results. This way, it keeps a clear separation
between what the system does as a whole and the details inside each part.
(geeksforgeeks, 2023)

26
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Figure 12: Structure Chart

27
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

7.2 Assumption Diary


The McGregor Institute of Botanical Training provided specifications are reviewed and
worked in order to design a system that meets the requirements. To enhance the logic
and design of the system, just a few assumptions are made during the design phase. The
following are the assumptions made by the group members for the McGregor Institute of
Botanical Plant Training Institute
The assumption for database to store system data are:

Website Development: The team believes that website development is the right solution
for the McGregor Plant Training Institute to respond to students growing interest in
agriculture and horticulture.

Registration and Login: Users are required to fill out a registration form with personal
information. Users can log in with their userID, and email address.

Educational Programs: This website will offer both graduate/postgraduate degree


programs and certificate-oriented short courses.

E-commerce Features: Members should be able to view a list of available plant and
gardening kits with descriptions and prices. Users can cancel their orders within 24 hours
of placing the order.

Purchase History and Payments: Members must be able to view their purchase history.
Payments for both equipment orders and course registrations are facilitated through an
integrated payment gateway.

Feedback and Forum: Members can provide feedback, comments, and ratings about their
purchases and learning experiences. members have access to forums where they can ask
questions, seek advice, and receive recommendations from experts.

28
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Trainers and Performance Ratings: Trainers must be able to retrieve student performance
ratings using member IDs. The average score for each student is calculated based on their
grades. Trainers can create performance reports

Exam Features: Members interested in horticulture education have access to practice


exam questions and related videos. members can register for the exam via the system.
Trainers can update or delete test forms as needed.
Forum Participation: Members can participate in forum discussions, post topics, and
participate in conversations about plants, gardening, and programs. Users can express
their approval through the forum discussion voting feature.

Notifications: Members receive notifications about new forum posts, replies to posts, and
other related activity within the forum. Students receive notifications about upcoming
courses, exam schedules, and other updates related to their enrollment program.

The requirements gathered by the team from the submitted specification, on which the
above assumptions are based, are as follows:

- Member and Staff Record Management:


The system should maintain records of all members and staff associated with the
training academy.
- Member Registration:
Payment is required during the registration process for membership.

- Member Details:
The system should store the following details for each member:
Full name
Date of birth
Location
Age
Gender

29
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Date of registration
Payment type

- Staff members have the responsibility to design test papers for examinations.
Staff can generate reports for the members.

- Admin has the authority to announce notices and publish the results of the
members.

- The system should provide a catalog displaying a list of available plants and
horticultural kits. Each catalog entry should include descriptions and prices.

- Users should be able to add selected plants and horticultural kits to a shopping
cart before making a payment.

- Members should be able to view their purchase history, including details of plants.

- Members should be able to provide feedback, comments, and ratings for their plant
purchase experience.

30
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Group Member Responsibilities


Throughout the system's design process, group members actively collaborated to ensure
a well-rounded approach. They supported one another by reviewing specific tasks
assigned to each member, fostering an environment of shared responsibility. In addition
to individual tasks, the group engaged in discussions about the entire system's workflow,
aiming for a comprehensive understanding among all members. Regular talks and
exchanges allowed for clarification of concepts and addressed any potential challenges.
Each group member had distinct responsibilities within the system's design, and tasks
were distributed based on individual strengths.

Group Member Responsibilities

Subin Rai • Work on individual task “Purchase Plant”.


• Make the design DFD level 0 and Level 1 of the
system.
• Work on Data Dictionary.
• Contribute to Project charter and SRS.
• Monitor the work progress and manage task.
Rabin Rai • Work on individual task “Report Preparation”.
• Contribute DFD Level 0 and Level 1.
• Make the design DFD Level 2.
• Work on Project charter.
• Work on process specification.
Ayush Tamang • Work on individual task “Make Payment”.
• Prepare the design of the Structure Chart.
• Detail explanation of DFD.
• Work on Summary of the report document.
Sujal Rai • Work on individual task “Take Certification
Exam”.
• Work on detail explanation SRS.
• Work on Structure Chart.

31
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

• Contribute on ERD design.


• Worked on Introduction of the report document.
Sushant Dahal • Work on individual task “Join the program”.
• Design and prepare ERD.
• Prepare the assignment diary.
• Contribute to the process specification portion.
Table 3: Group Task

32
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Meeting Entry
Meeting No: 01 Date: 2023/12/02

Start Time: 3:30 PM End Time: 4:30 PM

Items Discussed:
General idea of a given coursework and task distribution between the
group members.

Achievements:
As this was our first meeting, we discussed the general idea of a given
coursework, how to divide the task, and complete study of the case scenario
given in the coursework.

Tasks for the Next Meeting:


• Work on Introduction and project charter.
• Each member of the group designate a specific task.

Student Name Signature


Subin Rai Subin
Rabin Rai Rabin
Sujal Rai Sujal
Ayush Tamang Ayush
Susant Dahal Susant

Table 4: Meeting one details

33
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Meeting Entry
Meeting No: 02 Date: 2023/12/07

Start Time: 4:00 PM End Time: 5:00 PM

Items Discussed:
Dividing Task to each member.

Achievements:
Each member of the group was designated with a specific task which is to be completed
within the next meeting. Worked on the Introduction and project charter of the report document

Tasks for the Next Meeting:


• Discussion on whether the assigned task has been completed or not.
• DFD of Level 0 and Level 1.
• Make the design DFD Level 2.

Student Name Signature


Subin Rai Subin
Rabin Rai Rabin
Sujal Rai Sujal
Ayush Tamang Ayush
Susant Dahal Susant

Table 5: Meeting two details

34
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Meeting Entry
Meeting No: 03 Date: 2023/12/12

Start Time: 7:00 PM End Time: 8:00 PM

Items Discussed:
Discussion and Designing Process of DFD of level 0, level 1 and level 2.

Achievements:
We checked each other task individually and found out all the things were
perfectly correct, We discussed on where the assigned task has been completed
or not. Creating design of DFD level 0, level 1 and the DFD level 2.

Tasks for the Next Meeting:


• Prepare the design of the Structure Chart.
• Detail explanation of DFD.
• Making ERD design
• Preparing the assignment diary

Student Name Signature


Subin Rai Subin
Rabin Rai Rabin
Sujal Rai Sujal
Ayush Tamang Ayush
Susant Dahal Susant

Table 6: Meeting three details

35
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Meeting Entry
Meeting No: 04 Date: 2023/12/20

Start Time: 7:00 PM End Time: 8:00 PM

Items Discussed:
Discuss about the design of the structure chart and ERD.

Achievements:
In the 4th meeting of us, we are able to design the structure chart and ERD
design and also explaining the detail term of DFD, and preparing the assignment
diary. we verified our completed task by revising it and checking again and filled
with the required things which were missed at the first attempt.

Tasks for the Next Meeting:


• Detail explanation of DFD.
• Finalizing the main documentation file

Student Name Signature


Subin Rai Subin
Rabin Rai Rabin

Sujal Rai Sujal


Ayush Tamang Ayush
Susant Dahal Susant

Table 7: Meeting four details

36
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Meeting Entry
Meeting No: 05 Date: 2024/01/3

Start Time: 7:00 PM End Time: 8:00 PM

Items Discussed:
Finalizing the documentation

Achievements:
In our official final meeting, We checked each other’s tasks individually and found
out all the things were perfectly correct and we first set up the format and style sheet
for our documentation purpose and finalized the document. We everyone perfectly set
the documentation by putting acknowledgment, abstract, group work, and individual
tasks.

Tasks for the Next Meeting:


On the coursework submission date.

Student Name Signature


Subin Rai Subin
Rabin Rai Rabin
Sujal Rai Sujal
Ayush Tamang Ayush
Susant Dahal Susant

Table 8:Meeting five details

37
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

8 Individual Task

8.1 Make payment


Student Name: Ayush Tamang
Function name: Make Payment
Introduction
The McGregor Institute of Botanical Training asked us to build a system for certifying
horticulture and selling plants. I have made a visual guide to illustrate how data moves
between users, processes, and administrators. Users can purchase, pay, and enroll on
courses. Following these actions, users get an invoice. Administrators can check
payments, see reports, and update plant and course information.

a. Environmental model specification


Context Level Diagram

Figure 13: Level 0 DFD of make payment


The above figures shown is 1 level DFD or context diagram and This context diagram
focus on payment process. The incorporation of the enrollment, purchase, and invoicing
components provides a comprehensive overview of the sequence of events on the user
payment journey within the specified context. It is simple map of how things flow when
you pay for stuff in our system.

38
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

b. Internal model specification for the system.


Level 1 Data Flow Diagram

Figure 14: Level 1 DFD of make payment


In the Level 1 Data Flow Diagram for the “Make Payment” function, users begin either
enrolling on courses or purchasing plants, initiating the payment sequence. Following this,
the admin verifies the payment. After the verification of payment user will receive invoice.

39
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Level 2 Data Flow Diagram

Figure 15: Level 2 DFD of make payment


In the Level 2 Data Flow Diagram for the 'Make Payment' function, there is a detailed
explanation of three stages in the payment process. Firstly, the user requests a product,
leading to the system checking product availability and obtaining details such as plant ID
and course ID. These identifiers are then used to retrieve specific course details.
Subsequently, the total amount for the selected product and course is calculated. The
user is prompted to select a payment method. Once the method is chosen, the system
generates an invoice reflecting the total amount due. The finalized invoice is then sent to
the user for their records.

40
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

c) Design Specification
Structure Chart

Figure 16: Structure chart of make payment


When user enroll in a course or purchase plants, there is a payment process in place to
ensure a smooth transaction. User will be required to make a payment for the total amount
due, which will be calculated by the system. Once user have selected and verified your
preferred payment option, they can proceed to make the payment. After successfully
completing the payment process, user receives invoice.

41
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Module Specifications (Mspec) for make payment


MODULE NAME: Make Payment

PURPOSE: This module gathers payment information and incorporates this data into the
payment data repository.

PSEUDOCODE
DO
/* Fetching the userID from the login session */
var userID = Session.getID()

/* Taking input from user payment method */


var paymentMethod = INPUT("Enter payment method")

/* Fetching the price for plant purchase */


var plantAmount = Database.plant_Record.getPlantDetails(userID)

/* Fetching the price for course enrollment */


var enrollmentAmount = Database.Enrolled_Record.getEnrollmentDetails(userID)

var grossAmount = plantAmount + enrollmentAmount

/* Check the user validation */


IF (check_userID(userID) == True) THEN
/* Check product quantity */
IF (purchaseQuantity >= plantQuantity) THEN
grossAmount()

IF (paymentMethod == "True") THEN


/* Making the payment and getting payment ID */

42
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

var paymentID =
Database.Payment_Record.makePayment(userID)

/* Verifying whether the payment is successful or not */


var paymentStatus =
Database.Payment_Record.checkStatus(paymentID)

IF (paymentStatus == "True") THEN


PRINT("Payment successful")

/* Generating the invoice */


var invoiceDetails =
Database.Payment_Record.generateInvoice(paymentID)
PRINT(invoiceDetails)
ELSE
PRINT("Payment unsuccessful")
END IF
ELSE
PRINT("Payment verification failed")
END IF
END IF
END IF

END DO

43
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

INPUT PARAMETERS: paymentMethod,


OUTPUT PARAMETERS: paymentID, paymentStatus, invoiceDetails
GLOBAL VARIABLES: Database
LOCAL VARIABLES:
CALLS: getID(), getPlantDetails(), getEnrollmentDetails(), makePayment(),
checkStatus(), generateInvoice()
CALLED BY: Main

44
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

8.2 Purchase Plant


Student Name: Subin Rai

Function name: Purchase Plant

Introduction

This section of the website is exclusively designed for registered users interested in
buying plants. It offers a user-friendly interface for effortless exploration of different plant
options and seamless purchase transactions. People can easily look at different types of
plants, learning about their features and facts.

a) Environmental model specification

Context Level Diagram

Figure 17:Context Level Diagram of Purchase Plant

The above diagram represents the level 0 or Context Level Diagram of the function
Purchase Plant. Users initiate the process by sending purchase details to the system,
which includes viewing plant information and adding desired plants to a shopping cart.
The system then displays these purchase details to the admin for review. the admin can
approve or manage the purchase request, the admin holds the authority to manage plants
within the system, indicating the ability to add, modify, or remove plant-related
information.

45
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

b) Internal model Specification for the system

Data Flow Diagram Level 1

Figure 18:Level 1 of Purchase plant

The above diagram represents the level 1 where we broke down the function of “Purchase
plant” into four subfunctions, they are:

Search: User can search for specific plants they desire within the system.

Manage Plant: In this sub-function allows the admin to oversee and manage plant
including the ability to add, modify, or remove plant-related information.

Purchase: User have the capability to complete the purchase of selected plants.

Generate Invoice: The system is responsibility is to generate an invoice. It achieves this


by collecting user details and plant details from the payment details datastore, and
compiling them into an invoice.

46
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Data Flow Diagram Level 2

Figure 19: Level 2 of Purchase plant

The above diagram represents the level 2 where we broke down the subfunction of
“Purchase plant” into five subfunctions. They are:

verify Plant: This subfunction validates whether the requested plant by the user exists
within the system's or not.

Plant Availability: It checks if the requested quantity of the plant is available in the
system.

Add to Cart: Upon confirming plant availability, this step involves transferring the plant_id
to the shopping cart for the user.

Plant Purchase: Users complete the plant purchase process here by selecting and
buying the plants in the shopping cart. Additionally, this subfunction displays the status of
the purchased plants.

47
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Update Plant Stock: After a purchase is made, this step updates the plant stock levels
based on the quantity purchased by the user.

c) Design Specification
Structure Diagram

Figure 20: Structure chart of purchase plant

The system checks the plant details provided by the user to make sure they're accurate.
Then, it looks to see if the plant is available based on the user's demand. If it's available,
the system adds the plant to the shopping cart for the user to buy. "Plant Stock" check
the stock of plants in the system. Once it confirms that the plants are available, it proceeds
to confirm the order for the customer.

48
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Module Specifications (MSpecs)

MODULE NAME: Purchase plant

PURPOSE: This module obtains the details of the purchase plants and payment detail
of plant.

PSEUDOCODE:

DO

/* Fetching the userID from the login session */

var userID = Session.getID()

/*Promoting the user to enter plant details they want to purchase*/

var plantDetails = INPUT (“Enter plant name you want to purchase”)

var purchaseQuantity = INPUT (“Enter number of plant you want to buy”)

/*Fetching the price of the plant*/

var plantAmount = Database.Plant_collection.getPlantDetails(plantDetails)

/*Fetching the price of the plant*/

var plantQuantity = Database.Plant_collection.getPlantDetails(plantDetails)

/*Check the validation of the user*/

IF (check_userID(userID) == True) THEN

/* make the user to select plant for purchase*/

49
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Var addToCart = “Yes”

IF (addToCart == Yes”) THEN

/*Check the plant exist in required quantity */

IF (purchaseQuantity <= plantQuantity ) THEN

var grossAmount = plantAmount * purchaseQuantity

IF (purchase == True) THEN

/* Updating the quantity of plant in the database*/

UPDATE plant = Database.Plant_collection.getPlantDetails(plantDetails)

/* showing user successful pusrcase*/

PRINT (“successfully Purchased plant”)

ELSE

/*notify the user of failure */

PRINT (“User Purchase Failure.”)

END IF

/*notify the user of unavailability*/

ELSE

PRINT (“Out of stock”)

END IF

ELSE

/* If the user wants to add to cart instead of immediate purchase */

IF (userAction == "addToCart") THEN

50
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

addToCart = (plantDetails, purchaseQuantity)

END IF

END IF

END DO

INPUT VARIABLES: plantDetails, purchaseQuantity

OUTPUT VARIABLES: purchaseStatus

GLOBAL VARIABLES: DATABASE, Session

LOCAL VARIABLES: grossAmount, addToCart,userAction

CALLS: getID(), purchaseAmount(), getPlantDetails(), getPurchaseDetails(),

CALLED BY: main

51
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

8.3 Report Preparation

Student Name – Rabin Rai


Function Name – Report Preparation
Introduction
McGregor Institute of Botanical Training wanted us to develop anything that can help
them to provide short-term certificate related to horticulture. Our group decided to develop
a website as per their need. The owner of the Institute must review the report of every
activity within the site. They can have multiple types of report option like: plant sold report,
enrollment report, registration report, etc.

a) Environmental Model Specification


Context Level Diagram

Figure 21 Level 0 DFD of report preparation


This is the level 0 or context level diagram for process report preparation. This diagram
shows how the report is prepared by the staff and how the users and admin access those

52
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

report according to their privilege. The users can access the report of their activities within
the system. The admin can access all types of report from the system. The staff prepares
the report by gathering the data from the system and using the “Generate Report”
features. They update the report according to their rules.

b) Internal model Specification for the system

Level 1 DFD

Figure 22: Level 1 DFD of Report preparation

The figure shown above represent the Level 1 DFD for report preparation. It briefly shows
how the process is done. The user provides their User_ID to get the report, then the view
report sends the User_ID to data store to retrieve the report. If the system found the data
it return with report else send error message. The staff provides the data from the other
data store to Generate report process, then it generates the report and inform the staff
and store the report. The admin provides report type to get specific report. The system
send the type name to data store to get the report, and displays the report to admin.

53
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Level 2 DFD

Figure 23 Level 2 DFD of process view report


The figure given above shows the process view report. In this process, the users provide
the details related to report they want. The system verifies the provided data and pass it
to another process. Process 2.2 checks if the described report is available in data store
or not. If the report is available it go to another process the verify the User_ID to get
specific user report, else return error. The process 2.4 retrieve the report according to the
User_ID, and display it to the user.

54
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

c) Structure Diagram

Figure 24 Structure chart of Report Preparation

55
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

d) Module Specifications (Mspec)

Module Name – Report Preparation


Purpose: This module retrieves comprehensive details for all records within the system,
It not only offers access to the records but also ensures an in-depth exploration of each
entry.

Pseudocode:

DO

/* Fetching users role from the login session*/

var userRole = Session.getRole()

/*Checking if the user is admin or not*/

IF (userRole == “Admin”) THEN

/*Prompting the user to enter the type of report*/

var reportType = INPUT (“Enter the report type: ”)

/*Fetching data based on report type*/

IF (reportType == “User activity report”) THEN

var userData = Database.User_Record.getUserActivityData()

PRINT (userData)

ELSE IF (reportType == “Sales report”) THEN

var salesData = Database.Sales_Record.getSalesData()

PRINT (salesData)

56
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

ELSE IF (reportType == “Feedback report”)

var feedbackData = Database.Feedback_Record.getFeedbackData()

PRINT (feedbackData)

ELSE

PRINT (“Invalid report type”)

END IF

ELSE IF (userRole == “Staff”) THEN

/*Fetch all the payments data*/

var paymentData = Database.Payment_Record.getPaymentData()

/*Store the data in array for total calculation*/

Var totalSales = 0

FOR EACH payment in paymentData

totalSales += payment.amount

RETURN totalSales

END FOR

/*Fetch all the Enrollment data*/

var enrollmentData = Database.Enrollment_Record.getEnrollmentData()

/*Store the data in array for total calculation*/

Var totalEnrollAmount = 0

57
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

FOR EACH enrollment in enrollmentData

totalEnrollAmount += enrollment.amount

RETURN totalEnrollAmount

END FOR

var Total_Sales_Amount = totalSales + totalEnrollAmount

PRINT (“Sales report = ” + Total_Sales_Amount)

UPDATE Report (Data store)

END DO

INPUT VARIABLES: reportType


OUTPUT VARIABLES: userData, salesData, feedbackData, Total_Sales_Amount
GLOBAL VARIABLES: Session, Database
LOCAL VARIABLES: userRole
CALLS: getUserActivityData(), getSalesData(), getFeedbackData(), getPaymentData(),
getEnrollmentData(),
CALLED BY: Main

58
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

8.4 Join The Program

Student Name: Sushant Dahal

Function name: Join the Program

Introduction

The goal of DFD Join the Program is to provide a visual representation of the key
components and data interactions in the registration process. Program participation is the
process by which a user enrolls in an educational program through the system. This DFD
element shows the data flows and activities associated with the user's interaction with the
system to become a participant in the selected course or program.

a. Environmental model specification

Context Level Diagram

Figure 25: DFD level 0 of Join the program


From the above diagram User submit the application to system. The submit application
review by admin and the admin and determining approval status. Based on this the
system generates confirmation, notifying approval of their status, completing the join
program process.

59
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

b. Internal Model Specification


Level 1 Data Flow Diagram

Figure 26: DFD level1 of join the program


From the above diagram It shows that During the "Join a Program" process, program
categories are first defined in the system. Next, applicants specify their desired program.
If the applicant's criteria match the program requirements, their details will be saved in the
program history along with the program information. An approval notification will then be
sent to the applicant to complete the registration process.

60
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Level 2 Data Flow Diagram

Figure 27: DFD level2 of join the program

In the Level 2 DFD for "Join the Program," applicants start by browsing available
programs. Once a program is selected, it undergoes verification. The verified program
then undergoes a check for availability. The status of program availability is sent to the
approval process. Approved applicants are notified of successful enrollment, while
unsuccessful ones receive a notification of their status. Details of the program and the
applicant are stored in the applicants` details database, ensuring a comprehensive
record. This multi-step process ensures a thorough verification and availability check
before notifying applicants of their successful or unsuccessful program enrollment.
Careful verification and availability checks contribute to a robust system that ensures a
seamless and transparent registration process, and ultimately provides applicants with
clear and timely notification of program status.

61
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

c. Design specification

Structure chart of Join The Program

Figure 28: Structure of Join the program


From the above diagram user Once a program is selected, it undergoes verification. The
verified program then undergoes a check for availability. The status of program availability
is sent to the approval process. Approved applicants are notified of successful enrollment,
while unsuccessful ones receive a notification of their status.

62
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Module Specifications (Mspec)

Module Name – Join The Program

Purpose: users choose programs presented to them through the system. The system
stores detailed records of both the program and enrolled users in a comprehensive
database, ensuring efficient management and accessibility. This integrated approach
streamlines the process, offering clear program information to the user.

PSEUDOCODE:
DO
FUNCTION joinProgram(applicant, selectedProgram):

/*lets check Program Verification*/

IF verifyProgram(selectedProgram) THEN

IF checkProgramAvailability(selectedProgram) THEN

*/ Send Program Availability Status to Approval Process*?

availabilityStatus = sendToApproval(selectedProgram)/

/*Notify Applicant based on Approval Status*/

IF availabilityStatus == "Approved"

notifyApplicantSuccess(applicant, selectedProgram)

ELSE

notifyApplicantFailure(applicant, selectedProgram)

ENDIF

/*Store Program and Applicant Details*/

63
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

storeProgramAndApplicantDetails(selectedProgram, applicant,
availabilityStatus)

Return “Program not available”

notifyApplicantFailure(applicant, selectedProgram)

ENDIF

ELSE

Print(“Program verification failed”)

Notify ApplicantFailure(applicant, selectedProgram)

ENDIF

END FUNCTION

FUNCTION sendToApproval(program):

Return "Approved" or "Rejected"

END FUNCTION

END DO

64
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

8.5 Take Certification Exam


Student Name: Sujal Rai

Function name: Take Certification Exam

Introduction

Take Certification Exam is a part of the system about the certification exams offered by
McGregor Institute of Botanical Training. Users can give online exams to get certification.
Before attempting the certification exam, users can practice using a question bank to
enhance their knowledge. Once they feel prepared, they can proceed to take the
certification exam and earn a certificate. After completing the exam user can view their
results. This course enables users to gain knowledge and skills in horticulture and get to
know about more plants.

A) Environmental Model Specification

Context Level Diagram

Figure 29 Context Diagram of Take Certification Exam.

65
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

The above diagram also known as Context level diagram represents Level 0 diagram for
“Take Certification Exam” function. The process begins with the User by interacting with
the system to perform tasks such as completing the registration process and taking
exams. The System plays a central role in handling the data, generating report and
managing the certification exam process. Staff prepares question paper and sets
instructions within the system. The admin is responsible for tasks related to starting the
exam and exam scheduling from the System.

B) Internal model specification for the system

Data Flow Diagram Level 1

Figure 30: Level 1 DFD of Take Certification Exam.

66
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

The above diagram represents Level 1 DFD for Take Certification Exam. The process
initiates with the Staff which prepares the exam paper and sends it to the Design
Question Paper process then verifies the staff and stores the exam paper for further
processing. The User gives exam to get certificate, the process Online Exam sends
exam details to data store “Exam paper” to get question paper and then sends the store
result to data store “Result” to generate certificate. After completing exam, user can view
their results. The process Certification verify result to data store “Result” and send store
certificate to data store “certificate” to display examination certificate to User.

Data Flow Diagram Level 2

Figure 31 Level 2 DFD of Take Certification Exam.

The above diagram represents Level 2 DFD for Take Certification Exam. The system
verifies the exam details provided by the user, checking for validity and matching them
with exam records. The system checks if the corresponding exam paper is available for

67
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

the verified exam details. The user proceeds to take the exam after successful verification
and paper availability checks. The system generates a certificate based on the stored
exam results containing details like user ID, exam ID, and achieved score or grade. The
system displays the exam results to the user including feedback or a link to download the
generated certificate.

C) Design Specification

Structure Chart for Take Certification Exam

Figure 32 Structure Chart of Take Certification Exam.

68
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

This module, known as "Take Certification Exam," is a specific function within McGregor
Institute of Botanical Training. Its primary purpose is to conduct certification exams for
individuals who are interested in joining McGregor Institute of Botanical Training. Within
the main module, or "Root," The "Take Exam" function has three sub-functions Staff ID,
Design Test Paper, and Exam. These sub-modules serve as both inputs and outputs.

The process begins with the "Staff ID" module being called by the "Take Exam" function,
obtaining staff details. This staff ID is then passed as a data flows to the "Design Test
Paper" module which uses staff parameters to create test papers. After designing the test
papers, the process moves to the "Exam" module which has sub-modules User ID and
Print Result.

The "User ID" module provides details about the users and its parameters are then
passed into the "Print Result" module, revealing the exam results. The "Print Result"
module includes a decision point that branches into two possible outcomes pass or fail.
If a member passes the exam, they get certification of McGregor Institute of Botanical
Training. However, if a member fails, they are considered ineligible to get certification.

69
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Module specifications (MSpecs) for Taking Mock Exam modules

MODULE NAME: Taking Certification Exam

PURPOSE: The purpose of this module is to provide individuals with a well-organized


and user-friendly system to take tests and earn certification in the field of horticulture.

PSEUDOCODE

DO
/* Fetching the userID from the login session */
var userID = Session.getID()

/* Prompting the user to select the certification exam */


var examSelection = INPUT("Select Certification Exam")

/* Fetching the details of the selected exam */


var examDetails = Database.Exam_Record.getExamDetails(examSelection)

/* Displaying exam details such as duration, topics, and passing criteria */


PRINT("Exam Details:")
PRINT("Duration: " + examDetails.duration)
PRINT("Topics: " + examDetails.topics)
PRINT("Passing Criteria: " + examDetails.passingCriteria)

/* Prompting the user to start the exam */


var startExam = INPUT("Do you want to start the exam? (Yes/No)")

IF (startExam == "Yes") THEN

/* Initiating the exam session */

70
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

var examSessionID = Database.Exam_Record.startExamSession(userID,


examSelection)

/* Displaying exam instructions and questions */


var examInstructions =
Database.Exam_Record.getExamInstructions(examSelection)
PRINT("Exam Instructions:")
PRINT(examInstructions)

/* Looping through exam questions */


FOR EACH question IN examDetails.questions
/* Displaying the question and options */
PRINT("Question: " + question.text)
PRINT("Options: " + question.options)

/* Prompting the user to select an answer */


var userAnswer = INPUT("Select your answer")

/* Recording the user's answer */


Database.Exam_Record.recordUserAnswer(examSessionID, question.id,
userAnswer)
END FOR

/* Ending the exam session */


Database.Exam_Record.endExamSession(examSessionID)

/* Calculating and displaying exam results */


var examResults =
Database.Exam_Record.calculateExamResults(examSessionID)
PRINT("Exam Results:")
PRINT("Score: " + examResults.score)

71
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

PRINT("Pass/Fail: " + examResults.passFailStatus)


ELSE
PRINT("Exam aborted. You can start the exam later.")
END IF

END DO

INPUT PARAMETERS: examSelection, startExam, userAnswer


OUTPUT PARAMETERS: examSessionID, examResults
GLOBAL VARIABLES: Database
LOCAL VARIABLES: userID
CALLS: getID(), getExamDetails(), startExamSession(), getExamInstructions(),
recordUserAnswer(), endExamSession(), calculateExamResults()
CALLED BY: Main

72
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

9 Summary

In conclusion, the group main tasks involve preparing a Project Charter and Software
Requirement Specification (SRS) for the proposed system. The Project Charter outlines
the problem statement, business case, goal statement, timeline, scope, and team
members. The SRS details functional and non-functional requirements, design and
implementation constraints, and external interfaces required for the system.

The detailed specifications for the group tasks include environmental model
specifications, such as Context Level and Data Flow Diagrams (DFD) for different
processes, internal model specifications with Entity Relationship Diagrams (ERD), Data
Dictionary, and Process Specifications. Additionally, the group is required to provide
design specifications, including a Structure Chart for the entire system.

For individual tasks, each group member is assigned a specific system function, such as
Making Payment, Purchasing Plants, Report Preparation, Joining Programs, or Taking
Certification Exams. The individual tasks involve creating environmental model
specifications (Context Level), internal model specifications (Level 1 and Level 2 DFDs),
and design specifications (Structure Chart and Module Specifications).

In summary, the McGregor Institute's initiative aims to create a plant enthusiast


community, and provide a comprehensive online platform for courses, plant purchases,
expert advice, and community discussions.

73
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

10 References

Chai, W., 2024. TechTarget. [Online]


Available at: https://www.techtarget.com/searchapparchitecture/definition/data-dictionary
[Accessed 2 1 2024].
GeeksfoGeeks, 2023. Levels in Data Flow Diagrams (DFD). [Online]
Available at: https://www.geeksforgeeks.org/levels-in-data-flow-diagrams-dfd/
[Accessed 2 1 2024].
geeksforgeeks, 2021. Difference between entity, entity set and entity type. [Online]
Available at: https://www.geeksforgeeks.org/difference-between-entity-entity-set-and-
entity-type/
[Accessed 30 12 2023].
geeksforgeeks, 2023. Levels in Data Flow Diagrams (DFD). [Online]
Available at: https://www.geeksforgeeks.org/levels-in-data-flow-diagrams-dfd/
[Accessed 2 1 2024].
geeksforgeeks, 2023. structure charts. [Online]
Available at: https://www.geeksforgeeks.org/software-engineering-structure-charts/
Holmes, T., 2023. What is a Structured Chart. [Online]
Available at: https://www.smartcapitalmind.com/what-is-a-structure-chart.htm
Lucidchart, 2023. What is a Data Flow Diagram?. [Online]
Available at: https://www.lucidchart.com/pages/data-flow-
diagram#:~:text=A%20data%20flow%20diagram%20(DFD,the%20routes%20between
%20each%20destination.
[Accessed 21 12 2023].
Lucidchart, 2024. Data flow diagram examples, symbols, types, and tips. [Online]
Available at: https://www.lucidchart.com/blog/data-flow-diagram-
tutorial#:~:text=Level%201%20DFDs%20are%20still,stores%20to%20link%20them%20
together.
[Accessed 2 1 2024].
Peterson, R., 2023. Entity Relationship (ER) Diagram Model with DBMS Example.
[Online]

74
2207220 22073081 22072224 22072105 22072230
CS5002NT Software Engineering

Available at: https://www.guru99.com/er-diagram-tutorial-dbms.html


[Accessed 28 12 2023].
Romani, E., 2022. What Is a Software Requirement Specification?. [Online]
Available at: https://builtin.com/software-engineering-perspectives/software-requirement-
specification
[Accessed 25 12 2023].
Romford, L., 2023. What is an Attribute in Database?. [Online]
Available at: https://academichelp.net/coding/sql/what-is-an-attribute.html
[Accessed 30 12 2023].
Rosencrance, L., 2023. software requirements specification (SRS). [Online]
Available at: https://www.techtarget.com/searchsoftwarequality/definition/software-
requirements-specification
[Accessed 25 12 2023].
Soni, D., 2022. Scaler. [Online]
Available at: https://www.scaler.com/topics/types-of-relationship-in-dbms/
[Accessed 30 12 2023].
UC MERCED LIBRARY, 2024. What Is a Data Dictionary?. [Online]
Available at: https://library.ucmerced.edu/data-dictionaries
[Accessed 2 1 2024].

75
2207220 22073081 22072224 22072105 22072230

You might also like