0% found this document useful (0 votes)
15 views8 pages

Feasibility Study

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)
15 views8 pages

Feasibility Study

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/ 8

Names: Stephen, Gaddiel, Elnathan, Kumanan

Feasibility Study

Problem Definition
This program will help both students and coordinators by creating a streamline
academic management program which would simplify the process of tracking academic
progress. By including features such as managing courses, grades, and checking
university requirements for coordinators. For students, we’ve included the possibility to
view personal info, change and view contact info, view their top 6 as well as checking if
they meet the requirements for a certain university.

Problem Analysis
1. Adding a Large set of Courses
It may not be possible to include every possible course due to time constraints.
Instead, we should focus on implementing a subset of more essential or popular
courses into the program in order to represent a functioning prototype of the
concept. Furthermore, the application architecture should be easily expandable
so that more courses can be added in the future. It could be good to base our
data on official data sets such as: The Ontario Curriculum, and myBlueprint.

Similarly, if we want to make sure that all prerequisites are met when adding
courses, it’s better to start with a smaller and more dependable set of courses.
This way, the software doesn’t miss out on useful features such as checking if a
course is eligible for a student.

2. Managing Application Deadlines


Since there is a large time frame where Ontario university applications are open
usually running from September through February or even March, and the
decision-making process for admissions is even longer, lasting from December
until the middle of May. Universities may review applications at different times
during this lengthy period, which implies that they may calculate an applicant's
"Top 6" courses using different sets of grades. Because the program does not
know when an application will be dealt with, the software will use the most recent
grades available at the time of calculation to address this difficulty. Per this, it is
the student's responsibility to make sure their data is consistently up to date even
with their mid term marks.

End User Requirements


Our group's interview with the teacher was highly insightful. When our original idea was
to create a grades management system for teachers, we were shown just how
excessive coding all the necessary functions for teachers would be. This emphasized
how we allocate our time, and when we did end up changing the idea, kept the same
principle of focusing on fewer users to add a more exhaustive features list.

Furthermore, we were told that it would be imperative to make it so that our text files are
editable directly, to facilitate adding data. For this the text file would need to be more
user friendly and less sensitive which this project team will strive for.

Software Project Plan - Statement Of Work


Subtasks and Pseudocode
1. System to sign in either as a Student or a Coordinator (Stephen)

2. Establish the main menu

3. Create corresponding classes

a. Create a Student class

Attributes: username, password, student ID, name, year, courses, grades, uni
goal, contact information, bio.

Methods:

- toString();
- Return(print out) student ID, name, year, contact information and bio
- update contact info (email, phone number) (Elnathan)
- updates the email and phone number
- this.contactInfo[] = newContact[];
- getTopSix(grades[]) (Stephen)
- print out the average of their top 6 marks (Stephen)
- sort from decreasing and take the top 6 marks
- For (int i = 1; i<=6; i++) {
Sum = Add the marks; }
Sum = Divide sum by 6;
Return Sum;
- displayCourses(): (Stephen)
- print out their course (probably their grades as well)
- For (int i = 0; i<=courses.length; i++) {
Print out (courses[i]); }
- check university requirements (Elnathan)
- check the university requirements with the top 6 average and the required
courses

b. Create a Coordinator class (Gaddiel)

Attributes: username, password, list of student objects loaded from the


Students.txt file.
Methods:

- List entirety of students (Gaddiel)


- Shows if they meet their requirements or not.
- System.out.println(students);
- Show a single student (Gaddiel)
- System.out.println(students.get(index));
- Store the IDs of all students in a one dimensional array. (Elnathan)
- int[] idReference = students.get(IdNumber);
- Sort the idReference in ascending order. (Elnathan)
for (int i =1; i< idReference .length; i++) {
Store the value of numbers[i] in a temp;
z = i;
while (z>0 && numbers[z-1] >temp) {
numbers[z] = numbers[z-1];
numbers[z-1] = temp;
z--; } }

- Search the student with student ID using a binary search (Gaddiel)

public static int binarySearch(int[] idReference, int usersInput) {


int low =0;

int high = referenceNumbers.length -1;

while (low<=high) {

int midPosition = (low + high)/2;

int midNumber = referenceNumbers[midPosition];

if (usersInput == midNumber) {
return midPosition; }
if (usersInput < midNumber) {
high = midPosition-1;
} else {
low = midPosition+ 1; }
}
return -1;
}

- Editable student data(Elnathan)


- Edit name, year, bio, ID, Contact information (email & phone number),
- Access How many uni goals are met
- Open a specific one with a number
- Shows:
- ‘Required courses’
- ‘Missing courses’
- ‘Grade requirements’
- ‘Missing grade requirements’
- Current ‘Top 6’ grade % for this program
- Courses
- Show courses for each year in a neat manner
with grades for each class
- Edit courses
- Add new courses for the next year
- Change current courses
- Set/Change a course grade
- Give the course code. Ex: ICS4U
- To change a past course you need to do
that in the files. ( Potential not to be
added, consequently not in storyboard)
- Add a student (Stephen)
- Add all details, notably all courses and grades given the school year
- Set up a username and password
- Remove a student (Stephen)
- removes student by student ID
- students.remove(chosen student);
- Update student gr/years (Gaddiel)
- add 1 to all student gr/year
- Create a buffered reader to get all the student data from stuData.txt to store in an
arraylist (Elanthan)
- Create/save student data (stuData.txt) (Stephen)
- Sort student data after every update to the list.
- Save the student data when the coordinator wants to

4. Finally connect main menu UI to different methods from our students and
coordinator class (Gaddiel)

Gantt Chart

Resource List:

- Computers
- Allocated time to the project from group members to complete the code
- Groupmembers’ full effort, attention and collaboration.
- Online course names and university requirements (ex:
https://uwaterloo.ca/future-students/admissions/admission-requirements/biomedi
cal-eng/canada/ontario)
UI Storyboard (Rough draft) - Students
UI Storyboard (Rough draft) - Coordinator

Rest of functions are pretty self explanatory and aren’t included in the storyboard

You might also like