-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 1&
!!!!!!
Supply!of!Target!setting!Software!Ping%Yi%Secondary%School%
%
%
Proposal%
!!!!!!!!!
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 2&
INDEX!! Document!Summary......................................................Page!3!! Scope!of!Services............................................................Page!3!
o! Support!Services.Page!3!o! Work!BreakBDown!Structure................................Page!4!
! Software!Application!Mockup..Page!4!! Project!Workflow.Page!7!! InBScope!Browser!SupportPage!7!! Project!Methodology!and!ProcessPage!7!
o! Process..Page!8!o! ProgressPage!8!
! Testing!Process..Page!9!o! Test!Result!and!Report..Page!9!o! Project!Monitoring!and!TrackingPage!10!o! Change!Management!Process.Page!10!o! Risk!Management!Process..Page!11!
! Technical!Solution..Page!12!o! Technology!Stack..Page!12!o! Hardware!RequirementPage!12!o! High!Level!ArchitecturePage!12!o! SecurityPage!13!
! Efforts!Estimation..Page!14!! Project!Timeline..Page!15!! Team!CompositionPage!15&! Assumptions..Page!15!& &
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 3&
Document!Summary!This!is!a!Proposal!for!development!of!a!Software!Application!to!enable!Ping!Yi!Secondary!School!to!set!achievement!targets!for!their!students.!&
Development%proposal%includes%the%following:%
! Scope&of&Services,&Screenshots/Mockups&of&the&Functionality&of&proposed&software&application&! Image&file&to&see&the&Work&Flow&of&the&application&! Technical&Solution&and&Architecture&! Efforts&and&Costing&! Development&Methodology&and&Timelines&
TOP%^%
&
Scope!of!Services!Software!Application!with!features!mentioned!in!Requirement!Specification!Document!provided!(ITQ!B!Target!Setting!Software!B!Annex!A.docx):!
! Admin&panel&for&new&user®istration&with&NRIC&no&or&Email&Id&! New&user&will&receive&password&mail&and&login&link&for&first&time&use&of&the&system&! System&should&ask&to&change&password&if&it&is&a&first&time&login&! Capable&of&reading&official&data&to&project&targets&both&for&school&and&individual&students&! Able&to&input&and&convert&data&extracted&from&MOE&and&SEABs&systems&! Use&PRISM&and&T[Scores&as&input&data&reliably&to&interpolate/extrapolate&targets&! Able&to&provide&a&detailed&analysis&of&student&results&based&on&various&input&criteria&including&T[
scores,&past&year&examination&results&and&other&comparable&data&! Provide&a&trend&analysis&of&relevant&data&for&target&setting&! Identify&students&who&can&be&stretched&and&those&who&are&performing&below&their&capacities&! Produce&targets&and&analytical&reports&by&cohort,&subject,&class&and&individual&student&! Capable&of&customized&reports&with&a&choice&of&various&fields&! Able&to&save&analysis&and&reports&in&commonly&accepted&formats&for&future&reference&! Able&to&process&information&at&reasonable&speed&and&bug[free&! Build&with&utilities&for&first[level&troubleshooting&
&
Support!Services:!! Training&Support&! User&Manual&Document&
& &
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 4&
Work!BreakBDown!Structure:!&
Sr.%No.%
Module% Sub%Module% Task%
1& Requirement&Gathering&
& ! Requirement&Gathering&
&2& Architecture&
Design&& ! Define&Development&Architecture&
! Oath&Implementation&! Frontend&and&backend&system&setup&
&3& Design& & ! PSD&Creation&(Login,&Admin®istration,&Dashboard,&File&
upload,&Report&screen)&&4& Development& User&
Management&! Admin&user&can®ister&new&user&by&NRIC&no&or&Email&
address&! Email&will&be&sent&to&new&user&with&temporary&password&! System&should&check&for&temporary&password&and&ask&for&
change&password&&& & Read&school&
and&student&data&
! Read&official&data&to&project&targets&for&school&! Read&official&data&to&project&targets&for&individual&students&! Input&and&convert&data&extracted&from&MOE&! Input&and&convert&data&extracted&from&SEABs&systems&! Read&data&from&PRISM&as&input&data&reliably&to&interpolate&
/&extrapolate&targets&! Read&data&from&T[Scores&as&input&data&reliably&to&
interpolate&/&extrapolate&targets&&& & Reports& ! Provide&a&detailed&analysis&of&student&results&based&on&
various&input&criteria&including&T[scores,&past&year&examination&results&and&other&comparable&data&
! Provide&a&trend&analysis&of&relevant&data&for&target&setting&! Able&to&produce&targets&and&analytical&reports&by&cohort,&
subject,&class&and&individual&student&! Capable&of&customized&reports&with&a&choice&of&various&
fields&! Save&analysis&and&reports&in&commonly&accepted&formats&
for&future&reference&&5&Deployment&Testing&&6&Integration&Testing&
%
TOP%^%
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 5&
Software!Application!Mockup!Please!Note!!These!mockBup!screens!are!not!the!final!design!but!an!idea!to!see!how!this!app!will!work.!&
1.! Login%Screen%
&
&
&
2.! Add%User%Screen%
%
&
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 6&
3.! Dashboard%Screen%
%
&
4.! Student%Management%
&
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 7&
5.! CSV%Upload%
&
&
6.! Change%Password%
&
%
TOP%^%
&
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 8&
Project!Workflow!
&
TOP%^%
&
InBScope!Browser!Support!% Browser%Support%
Desktop% IE&&10,11&,&Mozilla&Firefox,&Google&Chrome&
Mobile%device% Mobile&Browser&
Tablet%Device% Tablet&browser&
&
TOP%^%
&
Project!Methodology!and!Process!We&will&use&Agile&Development&methodology&for&this&project.&Weekly&Sprint&Development&update&will&be&shared&with&the&Client.&Each&sprint&will&have&the&Requirement&Gathering,&Planning,&Development&and&Testing&Phase.&After&the&Final&Testing,&Sprint&Development&will&be&shared&with&Client.&
&
Any&change&request&if&Client&needs&to&raise&it&must&be&follow&the&company&change&request&(CR)&and&it&has&to&be&approved&from&Company&PMO&for&further&implementation.&&Any&change&request&that&comes&in&between&the&respected&Sprint&development&then&it&will&be&entertained&in&next&Sprint.&
&
Login&to&system Read&data&from&MOE&and&SEAB
Prism&&&T[Score&Input&Data
Reports
Reports&based&on&
Detail&Analysis&Report&Student
Custom&ReportsPerformance&Students
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 9&
Process:!
&
&
&
Progress:!&
&
TOP%^%
%
Sprint!Execution!Process:!! Setup&right&process&at&right&time&! Sprint&Backlog&analysis&! Keep&the&Requirement&clear&and&risk&free&! Daily&Scrum&meeting&! Weekly&status&call&! Less&turnaround&time&
&
&
Requirement&Analysis Testing Development
Sprint&4 Sprint&3 Sprint&2 Sprint&1
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 10&
Below!is!the!process!we!will!follow!to!execute!the!project:!As&mentioned&in&the&below&table,&all&documents&will&be&shared&with&the&Client&to&get&the&approval.&Once&a&Document&is&approved&from&Client,&Augmify&will&start&working&further&accordingly.&After&signing&any&document&from&the&Client&side,&any&further&changes&will&be&cater&as&a&Change&Request&process.&Although&some&Textual&or&any&minor&change&can&be&implement&with[out&any&change&request.&
&
Document&Name& Approved&By&(Augmify)& Approved&by&Client&&
SOW& Project%Manager% Yes%
Project&Timeline&and&Budget& Project%Manager% Yes%
Project&Plan&(Resource&loading,&sprint&plan)& Project%Manager% Yes%
UX&Design& Project%Manager% Yes%
Project&Detailed&Design&Document&and&ATC& Test%Manager% Yes%
UAT&Sign[off& Project%Manager% Yes%
%
TOP%^%
&
Testing!Process!Every&development&sprint&has&a&testing&phase&where&the&test&engineer&understand&the&requirement,&prepare&the&Test&cases&and&execute&the&Testing&on&the&defined&progress&of&the&sprint.&&
All&the&bugs&raised&by&the&Test&engineer&can&be&logged&in&a&bug&tracking&tool,&where&it&can&be&shared&the&all&stakeholders&of&the&project.&&
&
1!Test!Result!and!Report:!! Defect&Logging&(JIRA)&! Daily&Test&Report&! Defect&Matrix&and&Analysis&! Defect&Density&&! Release&Application&! Application&Release&Note&
&
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 11&
2!Project!Monitoring!and!Tracking:!Augmify&proudly&uses&Jira&(https://www.atlassian.com/software/jira)&for&effective&project&management.&Using&this&tool,&the&project&teams&can&globally&access&the&project&status&through&the&dashboards&and&project&repository/artifacts,&as&required.&
&
!3!Change!Management!Process:!
&
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 12&
Step% Description%Raise& ! Project&team&member&submits&Change&Request&Form&to&Change&Manager&Evaluate&& ! Change&Request&is&reviewed&
! Estimate&time/effort/cost&to&implement&! Assess&impact&or&risk&to&the&project,&system,&or&business&! Develop&proposed&solution&for&proposed&change&
Update&Log& ! Change&Manager&enters&Change&Request&into&the&CR&Log&! Status&is&updated&throughout&the&CR&process&
Assess& ! Propose&or&recommend&the&change&solution;&obtain&approval,&rejection,&or&rework&and&negotiate&agreements&on&schedule&and&effort&for&all&affected&parties&
Approve& ! Approve/reject&proposed&change&into&the&project&Implement& ! If&approved,&perform&change&and&update&submitter&and&stakeholders&
! Track&the&change&from&identification&through&update&project&plan&and&schedule&
Communicate& ! Update/re[baseline&project&plan(s),&estimates,&and&schedule&&
&
4!Risk!Management!Process:!
&
TOP%^%
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 13&
Technical!Solution!1!Technology!Stack:!We&propose&the&following&technologies&for&this&development:&
! Backend/Server%Side:&Node.js,&Express.js&! Front%End/Client%Side:&Angular.js&! Database:&MongoDB&! Tools:&Sublime&Text&
2!Hardware!Requirement:!Following&are&the&hardware&requirement&to&run&the&application:&
! We&would&recommend&AWS&EC2&T2.micro&instance&with&1&Intel&Xeon&processor&with&operating&at&2.5GHz&with&Turbo&up&to&3.3GHz,&1&GiB&of&memory.&We&can&increase&the&processing&power&or&change&the&instance&as&and&when&the&load&on&the&server&increases.&
3!High!Level!Architecture:!We&will&be&using&MEAN.IO&to&Scaffold&the&application&this&will&do&the&required&wiring&and&add&required&libraries&too.&
&
&
! MongoDB&is&a&NoSQL&database&technology&which&has&become&increasingly&popular&lately.&Two&main&things&attracted&me&to&it&&1)&it&uses&JavaScript&as&a&language&to&modify&and&query&the&database&and&JSON&format&to&store&the&data&and&2)&It&is&much&more&flexible&than&the&traditional&SQL&solutions.&It&does¬&enforce&a&schema&and&accepts&any&kind&of&unique&JSON&object&in&the&database,&no&matter&how&different&or&sophisticated&it&is.&Mongo&is&written&in&C,&but&you&use&it&with&JavaScript&which&is&why&I&consider&it&a&fitting&part&for&my&100%&JavaScript&stack.&
! Express.js&has&become&the&dominant&server[side&MVC&framework&for&Node.js.&What&I&like&very&much&about&this&technology&is&how&well&it&fits&with&my&thinking&as&a&Client[side&JavaScript&developer.&It&is&minimalistic,&yet&very&powerful&and&extendable.&Express&defines&the&responses&to&
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 14&
each&type&of&HTTP&request&at&each&defined&route&and&treats&the&request&and&responses&as&objects&you&can&manipulate&in&any&way&you&see&fitting.&
! Angular.js&is&a&Client[side&MVC&framework&by&Google&which&is&fighting&for&the&crown&in&this&realm&with&the&other&main&contender&Backbone.js,&of&which&Im&also&a&fan.&Angular&differs&in&the&way&that&it&aims&to&be&a&complete&solution&for&large[scale&applications&and&has&very&many&powerful&out&of&the&box&features.&It&has&been&gaining&a&lot&of&popularity&lately.&One&of&its&main&goals&is&to&increase&developer&productivity&and&creativity.&
! Node.js&is&the&biggest&game[changer&in&the&JavaScript&world&since&jQuery.&It&allows&JavaScript&to&transcend&its&traditional&role&as&a&browser&scripting&language&and&become&a&fully[fledged&programming&language&which&can&be&used&for&almost&any&purpose.&Many&tools&which&have&until&now&been&only&available&to&Java,&Ruby,&PHP,&.NET&or&Python&developers&now&have&their&analogs&in&the&Node.js.&It&is&used&from&writing&servers&and&making&web&applications&to&programming&drones&and&robots&like&the&Parrot&AR&and&Arduino.&NPM&is&a&brilliant&feature,&it&is&the®istry&for&tools,&plugins,&frameworks,&libraries&and&anything&JavaScript&you&need&which&can&be&added&to&your&application&with&a&simple&terminal&command.&&Node.js&will&have&all&the&business&logic&and&the&REST&API&for&the&external&world&to&access.&In&this&case&business&logic&layer&will&communicate&with&the&MOE&and&SEAB&Systems&to&import&and&process&the&data&as&per&the&required&report.&
4!Security:!Web&services&are&an&integral&part&of&many&Service&Oriented&Architectures.&They&facilitate&inter&and&intra&system&communication,&allowing&for&data&exchange&and&shared&functionality&among&internal&and&external&consumers&and&devices.&&However,&while&a&system&can&open&access&to&its&resources,&security&must&be&considered.&This&becomes&a&challenge&as&the&HTTP&protocol&is&stateless,&so&it&cannot&remember&anything&between&requests&and&it&forgets&everything&on&the&next&request.&
System&must&know&who&has&access&to&this&service&and&how&a&consumer&can&prove&his&identity.&This&document&aims&to&provide&information&of&JWT&(JSON&Web&Encryption)&one&of&the&several&methodologies&of&authentication&in&web&services.&
Traditional%Authentication%Systems%
Before&proceeding&with&a&token[based&authentication&system,&let's&have&a&look&at&a&traditional&authentication&system&first:&
! The&user&provides&a&username&and&password&in&the&login&form&and&clicks&Log[In&! After&the&request&is&made,&validate&the&user&on&the&backend&by&querying&in&the&database.&If&the&
request&is&valid,&create&a&session&by&using&the&user&information&fetched&from&the&database,&and&then&return&the&session&information&in&the&response&header&in&order&to&store&the&session&ID&in&the&browser&
! Provide&the&session&information&for&accessing&restricted&endpoints&in&the&application&! If&the&session&information&is&valid,&let&the&user&access&specified&end&points,&and&respond&with&
the&rendered&HTML&content&
Everything&is&fine&until&this&point.&The&web&application&works&well,&and&it&is&able&to&authenticate&users&so&that&they&may&access&restricted&endpoints;&however,&what&happens&when&you&want&to&develop&another&
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 15&
Client,&say&for&Android&or&IOS,&for&your&application&and&utilize&the&same&web&services?&Current&architecture&will¬&be&able&to&authenticate&mobile&Clients&for&two&main&reasons:&
! Sessions&and&cookies&do¬&make&sense&for&mobile&applications.&You&cannot&share&sessions&or&cookies&created&on&the&server[side&with&mobile&Clients&
! In&the¤t&application,&the&rendered&HTML&is&returned.&In&a&mobile&Client,&you&need&something&like&JSON&or&XML&to&be&included&as&the&response&
TokenTBased%Authentication%(JWT)%
In&a&Token[Based&Authentication,&cookies&and&sessions&will¬&be&used.&A&token&will&be&used&for&authenticating&a&user&for&each&request&to&the&server.&Let's&explain&the&scenario&with&a&token[based&authentication.&
It&will&use&the&following&flow&of&control:&
! The&user&provides&a&username&and&password&in&the&login&form&and&clicks&Log%In&! After&a&request&is&made,&validate&the&user&on&the&backend&by&querying&in&the&database.&If&the&
request&is&valid,&create&a&token&by&using&the&user&information&fetched&from&the&database,&and&then&return&that&information&in&the&response&header&so&that&we&can&store&the&token&browser&in&local&storage&
! Provide&token&information&in&every&request&header&for&accessing&restricted&endpoints&in&the&application&
! If&the&token&fetched&from&the&request&header&information&is&valid,&let&the&user&access&the&specified&end&point,&and&respond&with&JSON&or&XML&
In&this&case,&we&have¬&returned&session&or&cookie,&and&we&have¬&returned&any&HTML&content.&That&means&that&we&can&use&this&architecture&for&any&Client&for&a&specific&application.&Flow&diagram&in&next&page.&
TOP%^%
%
Efforts!Estimation!The!Development!Efforts!include!Testing!and!Quality!Audits:!%Resource%Loading% Total%Hours% Rate(Per%Hour)%SGD% Amount%PM/Scrum&Master& 70& $30& $2100&Node.js& 240& $25.83& $6200&Angular.js&+&HTML&+&Design& 240& $25.83& $6200&QA& 50& $21.25& $1062.5&Total%Weekly%Effort% 600% %% $15,562.5%
&
TOP%^%
-
Supply&of&Target&Setting&Software&|&Ping&Yi&Secondary&School& Augmify&Pte.&Ltd.&(201215159G)& 16&
Project!Timeline!Augmify!will!share!the!Detailed!Project!Plan!at!the!Start!of!Execution:!&
&
%
TOP%^%
Team!Composition!Role% Name%Project&Manager&/&Scrum&Master& Shaun&Stanislaus&Lau&Tsun&Ying&Node&JS&Developer& Nanda&Gawade&Angular&JS&& Derek&Zeng&Designer Shweta&Sharma&QA& Peter&Purshotma&
&
TOP%^%
Assumptions!! System&will&be&developed&from&scratch&and&no&existing&system&is&present.&! Wireframes&for&the&reports&will&be&provided&by&the&Client.&! Data&will&be&stored&locally&from&MOE&and&SEAB&Systems&and&Node.js&application&need¬&access&
external&MOE,&SEAB&Systems.&! Client&will&provide&AWS&instance&and&that&cost&is¬&included&in&this&estimation.&&
TOP%^%