Free Gradekeeper Ease and Functionality at Everyone’s favorite price. Patrick Sibley Carl Scogland Jerod Brackin CSC 4330‐1 Fall ‘08
FreeGradekeeperEaseandFunctionalityatEveryone’sfavorite
price.
PatrickSibleyCarlScoglandJerodBrackin
CSC4330‐1Fall‘08
OurProject:Ourprojectisaprogramtohelpmaintaingradesforaschool.Itwillletteachersteachingoneormoreclassesassignandmaintaingradesforstudentsineachoftheirclassesoralloftheirsubjectswhileaveragingthosegradesautomatically.Itwillalsoletstudentsviewtheirgradesforeachoftheirclassestotracktheirprogress.TheProblemweareaddressing:Maintaininggradesforaclassusingpaperandpencilistediousandtimeconsuming.Ittakesuptoomuchspacetotrytokeepupwithpilesofgradedpapers.Manyother,mainstreamsystemsmadetokeepupwithsuchinformationareexpensiveorcomplicated.Schoolsthatarenotwellofffinanciallymaynotbeabletoaffordsuchprograms.Regardless,gradekeepingisanessentialaspectofschoolingforbothteachersandstudents.TheImpactourprojectwillhave:Ourprojectwillgiveschoolsafreewaytomaintaintheirgrades.Iftheschoolsarestartingoutorhavelimitedfunds,theywon’tbeabletospendagreatdealofmoneyforagradingprogramforalltheirteachers.Insteadofmakingtheteachersusetheirvaluabletimetoaverageandmaintainstudents’gradesbyhand,theprogramwilldothisforteachersautomatically,thusgivingthemmoretimetofocusontheirchildren’seducationandbuildabetterfutureforthem.MajorGoalsoftheproject:
‐ Toprovideflexibilitysothatuserscandowhattheyneedtodowhenevertheyneedtodoit,howevertheywanttodoit,withoutgoingthroughtoomanytediousmenus.
‐ Toprovidealogical,userfriendlyinterfacewithnoconfusingmenussothatanyteacherorstudentcanuseit.
‐ Toprovideatimesavingaveragingprogramforteachers‐ Toletteachersofallgradesfromelementarytohighschooleasilymodifythe
interfacetofittheirneeds.Duetotimeconstraintsandsetbacks,thisgoalhadtobeabandoned.Thefocuschangedtohighschoolsettingsonly.Thereasoningbehindthiswasthatauniversitywouldlikelyhaveenoughfundstobuyacommercialproductwhilestudentsinelementarysettingsmightnotknowhowtousecomputersasquiteasproficientlyasothers
UsersTheFreeGradekeeperhas3groupsofusers:Teachers:userswhoteachoneormoreclassesataschoolandassigngradesbased
onstudents’performance,Students:userswhoareenrolledinclassesinsomeschoolsettingandtaketeststo
evaluatetheirknowledge.Administrator:Thisonefiguremaintainsschoolwidesettingsthatneithera
teachernorastudentshouldperformThefollowingliststheactivitiestheywillbeabletoperform.
Teachers’Activities‐Optionallyenterdescriptionsandpointvaluesforallgradestheyplantohave
throughoutthesemester(toenablestudentstoplanwhatgradestheyneedtomaketogetacertaingrade)
‐Inputasetofgradesforatest‐onegradetoeachstudentintheclass‐Viewandeditaspecificstudent’sgrades‐Seetheaverageforaspecificstudent’sgrades‐Seetheclass’saverageforthetotalgradeorforatest‐Setwhetherstudentscanseeclassaverages
Students’Activities‐Seeallcurrentgradesatthesametime‐Changepassword‐Foreachclass
‐Seewhotheteacheris‐Seepastgradesonpasttests ‐Foreachofthose,seetheclassaverage(ifenabled)‐Seethetotalgradetheyhavefortheclass‐Inputguessesforfuturegradestoseewhattheiraveragewouldbe
AdministratorActivities‐Edit,accept,ordenyuseraccountsfrombeingcreated‐Enrollstudentsinclasses‐Edit,add,ordeletecoursesintheschool
FSMs
NoteonFSMs:Inordertoachievetheflexibilitygoallisted,manypathsandtransitionsneedtobeavailableinourFSMs.Becauseofthesidebar,thestudentcanalwaysgettotheschedulescreen,thechangepasswordscreen,andthecoursepagescreen.Likewisefortheteacherbeingabletogettoanyscreenquickly.Thatbeingunderstood,thereareunderstoodpathsintheFSMsthatwouldbeentirelytootediousandconfusingtoshow.
EntitiesTeacher(userID,password,firstName,lastName,gender,age,streetAddress,state,zipCode,city,classCount,email,officeLocation,phone)Class
(classID,teacherID,description,studentCount,roomNo,meetingTime,semester,year,testCount,AverageGrade,PointsPossible,gradingScale,capacity)Student(userID,password,firstName,lastName,gender,age,streetAddress,state,zipCode,city,classCount,email,parentName,phone)Tests(testID,Description,grouping,PointsPossible,AverageGrade,gradingScale,weight,dateGiven)Admin(userID,password,firstName,lastName,gender,age,streetAddress,state,zipCode,city,classCount,email,officeLocation,phone)RelationshipsTeaches(teacherID,classID)Has(classID,testID)Enrolled(studentID,classID,ClassGrade,PointsMade,Percentage)Takes(studentID,classID,testID,PointsMade,DateTaken,Percentage)LinkDescriptions‐0:nonTeachertoteacheslink:Ateachermaybeteachinganywherefrom0tonclasses.(0mostlyappliestonewteacherswithoutclasses.‐1:1onclasstoteacheslink:Aclasswillbetaughtbyexactlyoneteacher.‐1:monstudentstoenrolledlink:Astudentcanbeenrolledinatminimum0classes(duringsummer,forexample),butatmostmclasses.
‐0:konclasstoenrolledlink:Aclasscanhaveanywherefrom0(whenaclassisinitiallycreated,forexample)tokstudentsinit.‐0:Lonclasstotestslink:Aclasscanhaveanywherefrom0students(usuallyonlywhenitisinitiallycreatedandstudentshavenotyetscheduledit)toLstudents.‐1:1onteststohaslink:Atestispartofexactlyoneclassandnotusedbyanyother.‐0:m*Lon(studentenrolledinaclass)totakeslink:AstudentenrolledinasmanyasmclasseswithLtestsineach,canhaveuptom*Ltests.‐0:konteststotakeslink:Iftherearekstudentsinaclass,atmostthereneedbektests.
MenusThemostefficientwaytoachievethelevelofflexibilitythatwewantistouseasidebarinourprogram.Thissidebarwouldalwaysbeonthescreen,alwaysallowingwhicheverusertogotothemostimportantormostfrequentlyusedplacesintheprogramtheyneedtogo.Thefollowingmenusarelistingsoftheitemswewantineachmenu.Wewilldealwithaesthetics,colors,andfontslaterafterwearesurethatthemenusareasfunctionalastheyneedtobe.____________________________________________________________________________________________StudentSideBar<|BackForward|>//linktothepreviousornextpagecutduetotime<StudentName>//notalink.Justshowingthestudent’sname‐AllGrades//linktotheallgradesscreen‐Schedule <ListofCourses>(inalphabeticalorder)anexamplefollows English//eachoftheseisalinktothecoursepageforthatsubject Math . . .‐ChangePassword//linktothechangepasswordscreen‐Logout//logsuseroutofsystem____________________________________________________________________________________________AccountScreenEnterPreviousPassword<textfield>EnterNewPassword<textfield>ReenterNewPassword<textfield>Submit//whenclicked,thiswillchangethepasswordtowhateverisinthenewChangeemailaddress<textfield>Submit//passwordtextfieldonlyiftheoldpasswordiscorrect.____________________________________________________________________________________________
AllGradesscreen<Studentname>’sGrades<ListofCourses><OverallCourseGrade><Uptolast5gradesforcoursetests>EnglishBTest3–85BQuiz3–75CTest4–80–B…MathATest1–93ATest2–88BHomework5–75–C…../**Eachsubjecttitleisalinktothatcourse’spage.Thesearetheonlylinksonthisscreen.Thescreenissetupthiswaybecauseeachsubjectmayhavedifferentdescriptionsandnumbersoftests.Thepurposeofthisscreenisnottooverwhelmanyonewithabunchofnumbersonascreen.Itistoshowthemostrecentgradesinallthecoursesandtheoverallgradeineachcourse.*/____________________________________________________________________________________________Student: ...<student-name>... Course : ...<course-name>.... Semester: ...<fall-or-spr>... Year: ...<????>... Garding scale: A=85-100, B=75-84, C=65-75, D=55-64, F=0-54 Scores for test, homeworks (including max-marks and percentage of grade, if applicable): Tests(90%) : #1(100, 20%) #2(50, 20%) #3(100, 25%) #4(100, 25%) Student : 90 30 --- --- ClassAverage : 87 40 --- --- Homeworks(10%): #1(10) #2(15) #3(15) #4(10) Student : 10 10 5 10 ClassAverage : 9 8 12 10 Current grade : Total Test Scores = 120(150), weighted-value = 72(90) Total Homework Scores = 35(60), weighted-value = 6(10) Total = 78(100), grade = B TeacherInfoFindotherstudentsCalculateProjectedFinalGrade
/**calculateprojectedfinalgradeshowstestsyettobetakenwithtextfieldsforthepointsmade.TheCalculateProjectedFinalGradebuttonischanged.Twonewbuttons:“calculate,”(whenclickedthiswillshowthenewlycalculated“projectedtotal”insteadofclasstotal.Thiscanbecalculatedmultipletimes.),and“currentgrade”(whichremovesthetextfieldsandshowsclasstotalagain.“TeacherInfo”isalinktotheteacherinfoscreen.“Findotherstudents”isalinktoascreenshowingthenamesoftheotherstudentsintheclass.*/ProjectedTotal590650%%TeacherInfoFindotherstudentsBacktoCurrentGradeCalculate____________________________________________________________________________________________TeacherSideMenu<|BackForward|>//linkstothenextandpreviouspages<TeacherName>‐AllCourses‐Account‐Classes <ListofClassesCurrentlyTeaching(alphabetical)>
//eachalinktothatcoursepage‐Settings//linktothesettingsscreenwhereteachersetsvisibilities‐Logout//logsuseroutofthesystem___________________________________________________________________________________________Coursepage<CourseName><ListofStudentsincourse(alphabetical)><Descriptions>……TotalGrade.<GradeofStudent1>…..<TotalGradeofstudent>Test1Test2…TotalGradeAlan90A82B…81.5BBobby85B76C…72.1CCarl95A73C…...<Average><Average>…..<ClassGradeAverage><SaveChanges>/**anyindividualgradecanbeclickedtoturnintoatextfieldwhichcanbeedited.A“savechanges”buttonwillbeatthebottomrighthandcornerofthescreen.Anyattempttochangepageswithoutsavingwilldisplayan“areyousure”box*/____________________________________________________________________________________________Studentinaclassgradesscreen
<StudentName>’s<ClassName>grades<Description><Grademade><percentage>editMath‐Carl’sGradesTest190/9590%Aedit..SaveChangesAll<StudentName>’sgrades(onlyinelem)/**editchangesthestudent’sgradetoaneditabletextbox.Savechangessavesallchangeswhenclicked.All<StudentName>’sgradesgoestoapagethatshowsallofthatstudent’sgrades.*/____________________________________________________________________________________________EnrollStudentScreenSelectClasstoaddto<dropdownlistofclasses>SelectStudent<dropdownlistofstudentsinclass>Whattodo?<dropdownadd,edit,delete>*willbeprompted“areyousure”**note,Selectstudentwillonlybeavailableforelementarybecauseonestudentisaddedtoallclasses.*
UserFunctionsinaprogrammingsenseGenericUserFunction Parameters Other
InputsValueReturned
OtherOutputs
average arrayOfGrades average getTestGrade testID,studentID,
classID testGrade
Back lastPage Mainframechanged
Forward nextPage Mainframechanged
toPassword Mainframechanged
changePassword newPassword,confirmPassword,oldPassword,
Passwordchanged
startEmailEditor sendRequestForLogin type,name request
sent StudentFunction Parameters Other
InputsValueReturned
OtherOutputs
toAllGrades studentID Mainframechanged
toOtherStudents courseID Mainframechanged
emailTeacher EmailEditorstarted
toTeacherInfo courseID Mainframe
changedcalculateProjectedGrade
arrayOfGrades,arrayOfExpectedGrades
projectedGrade
backToCurrentGrade courseID Mainframechanged
toCoursePage courseID Mainframechanged
TeacherFunction Parameters OtherInputs Value
ReturnedOtherOutputs
editTestGrade testID,studentID,classID,newGrade
testGradechanged
Thisprogramcannotcurrentlyberunonapplecomputersorcomputerswithoutthelatestversionofjavainstalled.Macsrelyontheirownservice,softwareupdate,tohandleanyupdates.Forthisreason,theydonothavethelatestversionofjava.Thisprogram,however,usesanewerclassfromtheswingpackageinthebuildingoftheGUIs.
Thisprogramusesadatabase,and,asaresult,needsadriverforthisdatabase.Thedriverusedwascom.mysql.jdbc.Driver.Thiswasincludedinajarsotheprogramcouldrun.AppendixofclassesMain.java–includesthemainmethodClassesbasedontheEntitiesUser.java
Teacher.javaAdmin.javaStudent.java
Takes.javaSubject.javaEnrollment.javaTest.javaDBAccess.java–foraccessingthedatabaseJPanelsubclassesfortheGUIelements InitialGUIs Logon.java Registration.java FortheStudent SideBar.java AllGrades.java Course.java Account.java CalculateProjected.java FortheTeacher AllCourses.java TCoursePage.java TSettings.java TSidePanel.java TAccount.java TStudentGrade.java FortheAdmin AdminMain.java AdminApprove.java AdminMakeSubj.java Enroll.java UserReqs.java