CS-STEM Student and Parent Registration 1.0 Requirements Specification
CS-STEM Student and Parent Registration 1.0 Requirements Specification
CS-STEM Student and Parent Registration 1.0 Requirements Specification
PRESENTED TO:
<Client Names>
<CLIENT LOGO>
PRESENTED BY:
<TopCoder Names>
Revision History
Author Revision Number Date
<handle goes here after final fix> 1.0 01/13/2011
1. Scope
1.1 Overview
1.2 Objectives
1.3 Limitations & Assumptions
2. Logic Requirements
2.1 Register to Application
2.2 Unregister from Application
2.3 Process Parent Approvals for Child Students
2.4 File Parent Approval Documents
2.5 Get Restricted to Activities Participation
2.6 Request Parent Authorization
2.7 Get Approved by Parent
2.8 Get Authorization Request from Child Student
2.9 Get Approved as Parent
2.10 Perform Parental Control for Child Student
2.11 Share Child Student Activities
2.12 Perform Auditing
2.13 Perform Logging
2.14 Send E-mail Notifications
3. General Requirements
3.1 Graphical User Interface Requirements
3.2 Performance Constraints
3.3 Security
4. Required Documentation
4.1 Specification Documentation
6. Notes
7. Future Enhancements
8. Glossary
8.1 Definitions
8.2 Acronyms
CS-STEM portal will be like a new entire TC website, but specially dedicated to the education of
middle- high students (ages of 13...18).
This specification will cover the student and parent registration-related portions of the web-site.
The detailed information about how students/parents will register to the application and various
approvals will be provided. The specification describes students' restrictions to participation in
activities, how the Student requests for parent authorization and how the Student get approved by
the parent. There will be details about how users can get approved as Parents, how parents
receive and process authorization requests from their children, how parents perform parental
control and share activities with their children on the application. It will be also described how the
System Admin will process student approvals from their parents as well.
The following use cases of the CS-STEM Education Project Hosting Platform conceptualization
are in scope. Please note, they will be slightly renamed and extended in the specification
document, but references to those original use cases are also provided.
4.4.12 - Register to Application (with specifics and focus on Students and Parents),
4.4.26 - Unregister from Application (with specifics and focus on Students and Parents),
4.4.39 - Process Student Approvals from Parents,
4.4.56 - Get Restricted to Activities Participations,
4.4.57 - Request Parent Authorization,
4.4.58 - Get Approved by Parent,
4.4.60 - Get Authorization Request from Child Student,
4.4.62 - Get Approved as Parent,
4.4.63 - Perform Parental Control for Child Student,
4.4.64 - Share Child Student Activities,
4.4.32 - Perform Auditing (only as it applies to student and parent registration-related
functionality),
4.4.33 - Perform Logging (only as it applies to student and parent registration-related
functionality),
4.4.35 - Send E-mail Notifications (only as it applies to student and parent registration-
related functionality).
2.2 Objectives
The objectives of the entire CS-STEM education hosting platform application are as following
(this specification covers just a small part (student and parent registration-related) of that main
application).
To implement a web-based education portal to efficiently teach students of 1318 ages
for CS, Science, Technology, Engineering and Math. The emphasis will be on CS.
To leverage existing TC assets (like Arena, Marathon Matches, TC High School) for
performing middle and high students education through competitions.
To share users data on the social network and deliver common widely used social
networking features (like forums, blogs, friends, etc.) to the education web-portal.
To motivate students for learning education materials, participating in competitions and
for getting interested in new areas they never possible recognized earlier.
To support powerful user management (including identity verification) and a large set of
user roles assigned to trusted users. That management has to be as simple as it possible
for end users.
To deliver full content management for education and competition data.
To provide engaging, interesting, attractive, and easy to understand education content for
CS, Science, Technology, Engineering and Math subjects.
To reduce possibility of cyberbullying in the application to as low as it possible.
To design a base platform for CS-STEM application, suiting such education tasks.
To send helpful e-mail notifications to users in most important events during the
application workflow.
To support logging of errors/warnings/exceptions and audit all the user actions during the
application execution.
To achieve high performance of the application and scalability.
Project Return on Investment (ROI Metrics) of the entire CS-STEM education hosting platform
application are as following:
Initially:
o To attract students from at least 15 different US states to the CS-STEM education
portal.
o To achieve at least 80% of users completed registration on CS-STEM to
participate in one or more activities on CS-STEM education portal. We define
"retained users" as registered users, who have visited CS-STEM portal at least 2
more times after registration AND have been involved in activities on CS-STEM
portal during 3 months after their initial activity.
For future:
o To involve thousands of users to CS-STEM portal.
o To make a positive buzz through community about new education portal.
o To have long-term corporate sponsorship of content, awards, prizes, scholarships
and SRM style sponsorship.
o To achieve and confirm an ability for making more communities by TC community
(CxC, Community by Community) in the future. Most of base platform features,
defined in this conceptualization, could be efficiently re-used in the future for
building new communities if this application succeeds.
Assumptions critical to the success of the entire CS-STEM education hosting platform application
are listed below:
The application will be web-based and integrated with several existing TC assets (like
Arena, Marathon Matches, TC High School, etc.).
Any user will access the application through a web-browser.
Users can be from different time zones.
International symbols have to be properly displayed in the application.
System Admins will be able to manage all the users and manage/moderate all the
content in the application.
Parents will fully control and approve activities of their students in the application.
School codes and Teacher codes will be used only for association purpose for now to
associate users with the related School and Teacher. They do not (at this time) suppose
any additional privileges for now.
All the content and activities will be appropriate for ages of 1318.
At least one System Admin has to present in the system. The last System Admin can not
be removed.
The application is free for all users.
3. Logic Requirements
Use case diagram is shown below:
The application will display the registration page with empty fields for the account and
user profile. There is no such "registration" page in the Liferay and, therefore, it has to be
created as a custom portlet.
The user can enter the brief information on the new account according to the following
table:
Data Element Description Format R?
Handle The unique username (handle) The handle is in two parts: Y
for the account on the application (1) a minimum 4 maximum 8
character handle (no
spaces)
(2) a last name selected
from a drop-down of
options
The two part name is merged as
a single handle in the database.
A space separates the two
names.
Password The password of the user String, min 6 chars, max 10 Y
chars, case sensitive, any
combination of ASCII characters.
Displayed with * chars when
entering
E-mail The e-mail address of the user. String, max 100 chars, must be a N
This is optional. valid e-mail, non empty
CAPTCHA code The picture with CAPTCHA code A picture (dimensions are up-to Y
to be entered by the user for the Studio designer) having a
validation that he/she is a human String, 6 chars, non empty.
The user has to choose one of the following user roles for his/her account:
o Student (default),
o Parent,
o etc. - like School Admin, Teacher, Reporter (please note, the System Admin can
not register him/herself just an existing System Admin can create more System
Admin accounts).
There will be some optional fields, which can be also added by the user to his/her profile,
listed below.
Some elements are required after students and parents complete their authorization
forms. These elements are marked with an asterisk (*) in the R? column in the table
below:
Can be empty.
Date of Birth The date of birth of the user String, Date format like YYYY- N
MM-DD, can be empty. *
Please note, the decision on whether those optional attributes will be included in the
application or not will be left till later.
o The developer can add these to the application at a later date (user interface and
Application Requirements TopCoder, Inc. 2011 Page 12 of 64
Specification
Application Requirements Specification
The new account will be created with a status to indicate the email address has not been
verified.
The account is otherwise active in all regards
Your email address has been successfully verified in our system. Thank you for taking the time to do
that!
If you are trying to change your handle, but do not wish to otherwise resign from the
site, please click No below, and email the system administrator.
<YES>, <NO>
If role of the user trying to unregister is a Student, then the confirmation message will be
like following:
Are you sure to unregister from CS-STEM application?
Please note, you will not be able to re-register through the website with your same
handle and password later. If you wish rejoin us and retain your username, just send us
an email and well help you out!
If you are trying to change your handle, but do not wish to otherwise resign from the
site, please click No below, and email the system administrator.
Please note that any parental accounts associated with your account will be notified of
your registration.
<YES>, <NO>
details.
The date of the Parent un-registration will be recorded.
The student's information cannot be used in reporting from that point forward, but data
from the student's authorized period can be used.
The following data will be shown on the child students profile:
Data Element Description Format R?
Parent's handle The unique username (handle) of String, max 50 chars, non empty Y
the Parent in the CS-STEM
application
Parent's e-mail The e-mail address for the Parent String, max 100 chars, must be a Y
valid e-mail, non empty
Unregistered On The date when the Parent was String, short date format like Y
unregistered from CS-STEM MM/DD/YYYY, non empty
application
Students The authorization approval status Empty String value it means the Y
Approval Status of the child Student child Student is not authorized yet
and can get just the read-only
and practice-only access to CS-
STEM activities
The Liferay User Profile can be re-used and customized to properly show Parent un-
registration status on profiles of the child Students.
The Liferay Permissions Model can be re-used and customized to properly change the
Student's permissions to not authorized after his/her Parent has unregistered.
application.
Reference to initial use case in conceptualization: 4.4.39.
Pre-conditions: the System Admin received a mail with parent approval for some student.
The user has to be logged in to perform this action.
Post-conditions: the parent approval was processed by the System Admin for some
student and applied to the system for the related Student (either approved access or
access denied for the Student).
note, we can re-use Liferay User Profile It provides the profile functionality. It needs to be
customized to support attaching of parent approval forms in our application.
Reference to initial use case in conceptualization: 4.4.39.
Pre-conditions: the System Admin received a mail with parent approval for some student,
scanned it and is going to attach it to the system. The user has to be logged in to perform
this action.
Post-conditions: the scanned parent approval document was filed (attached) to the
system for the related student.
OR
Etc.
The application will attach the submitted and validated parent approval form to the related
Parent's profile.
The Liferay User Profile can be customized to allow attachments of files to the profile.
Just one approval form can be attached for the student, but parent can have multiple
attached approval forms, because he/she can have several children Students.
The approval form will have just one boolean approval value, so the Student will get
access to most of CS-STEM activities after getting an approval from his/her Parent (the
list of allowed activities after getting approved by the Parent will be configurable).
If the Student tries the restricted activity, then it will simply not work for him/her.
Else, (if the Student tries the allowed activity), then it will properly work for him/her.
The Permission Model from Liferay portal can be re-used to support user's restrictions.
The students activities will also be restricted in various portlets.
etc.
The Student can also repeatedly request parent authorization if it was delayed (like by 48
hours, configured). The system will automatically re-send delayed request, but the
Student can also do that manually in the application.
his/her Parent.
Please refer chapter 3.14 for more details on Parent Approval Status Notification E-mail.
3.8.1.3 Download Parent Approval Form for the Parent's Child Student
The Parent can download approval form for his/her child by pressing some hyperlink (like
"Download Parent Approval Form") in the received notification e-mail with Parent
Authorization Request.
The approval form will be downloaded as a PDF file, which will be professionally
formatted and have full information about the CS-STEM features, allowable content and
activities.
The Parent can view the downloaded PDF file with the parent approval form by using
some PDF-reading application on his/her computer.
The following data will be shown for the parent approval form:
Data Element Description Format R?
Student's handle The unique username (handle) String, max 50 chars, non Y
of the Student in the CS-STEM empty
application
Student's e-mail The e-mail address for the String, max 100 chars, must be Y
Student a valid e-mail, non empty
Parent handle The unique username (handle) String, max 50 chars, can be N, but
for the parent of the Student in empty at least
the CS-STEM application one
Parent e-mail The e-mail address for the String, max 100 chars, must be entry is
parent of the Student a valid e-mail if non empty, can required
be empty
Approval Status The approval status, to be Empty string, the Parent has to Y
assigned to the approval form manually write the following
by the Parent for his/her child data to that field:
Student String, max 10 chars, non
empty, the following values are
possible:
Permitted,
Restricted.
Signed On The date when the approval Empty string, the Parent has to Y
form was signed by the Parent manually write the following
data to that field:
String, short date format like
MM/DD/YYYY, non empty
Sign The sign of the Parent Empty field, the Parent has to Y
manually write the following
data to that field:
Handwriting of the parent sign,
non empty
There will be list of CS-STEM activities, which will be either allowed by default for the
Student (if the Approval Status was set to "Approval"), or restricted by default for the
Student (if the Approval Status was set to "Rejected"). The following data will be
displayed for each entry of the list):
Data Element Description Format R?
Activity Name The name of CS-STEM String, max 50 chars, non empty Y
application activity
3.9.1.5 Disable Profiles of Cheating Child Students for the Cheating Parent
If the Parent was recognized as cheated, then the System Admin will request the
application to disable the profiles of all the child Students of that Parent.
Those Students (also recognized as cheated) cannot access the CS-STEM application
activities anymore.
The Liferay Permission Model can be re-used and customized to properly disable the
account of the cheated students.
specification and was already covered by "View Public Users Profile" use case in "CS-
STEM Hosting Platform User" specification.
The following data will be show for each item of the list:
Data Element Description Format R?
Activity Name The name of CS-STEM String, max 50 chars, non empty Y
application activity
Activity Status The status of the activity String, max 10 chars, non empty, Y
permission (i.e. allowed or the following values are possible:
restricted) Allowed,
Restricted.
Activity Type The type of each individual String, max 50 chars, non empty Y
activity
Content Track The track of the each individual String, max 50 chars, non empty Y
activity (like Robotics, Health,
Ecology, Economics, etc.)
Grade/curriculum The grade or the curriculum for Positive integer from 6 to 12, non Y
type the activity empty.
Messaging by The type of the messaging for the Boolean values: Facebook Y
type Student yes/no, Twitter yes/no, private
contact yes/no, etc
<Flexible Data> This feature needs to be flexible Flexible String value, like max 50 N
and pluggable (i.e. if new features chars, can be empty
are added to CS-STEM
application, then an ability to
permit/deny them have to arrive
on the Parental Control web-page
Student's profile. That status will be single item selection list, each value is String, max 10
chars, non empty, can have values of "Allowed" or "Restricted".
The Parent will choose the needed CS-STEM activity entry in the list and choose the
needed permission.
The permissions can be set individually per each CS-STEM activity.
OR
You have cancelled changes of CS-STEM activities permissions for your child Student.
case "Manage Social Networking" and use case "Manage Content of Child Students" of
the "CS-STEM Hosting Platform General Community" specification.
If the Parent was rejected, then the system will send the notification e-mail to the e-mail
addresses of the related child Student(s) of that Parent through some E-mail server.
E-mail recipient user can open and view the received e-mail by his/her own e-mail
reading software.
Please allow or restrict that activity for your child Students through Parental Control:
<ParentalControlHyperlink>
Where <ActivityName>, <ActivityType>, <ContentTrack>, and
<ParentalControlHyperlink> are as following:
Data Element Description Format R?
<ActivityName> The name of CS-STEM String, max 50 chars, non Y
application activity empty
<ActivityType> The type of each individual String, max 50 chars, non Y
activity empty
<ContentTrack> The track of the each String, max 50 chars, non Y
individual activity (like empty
Robotics, Health, Ecology,
Economics, etc.)
<ParentalControlHyperlink> The hyperlink to parental String, max 1024 chars, non Y
control web-page in the CS- empty, must be a valid URL
STEM application (please
refer chapter 3.10)
The system will send the notification e-mail to the e-mail addresses of all the Parents
through some E-mail server.
E-mail recipient user can open and view the received e-mail by his/her own e-mail
reading software.
You can find those results on your child Students profile: <ProfileHyperlink>
Where <StudentHandle>, <Title>, <Description>, <Date> and <ProfileHyperlink> are as
following:
Data Element Description Format R?
<StudentHandle> is the username/handle of the String, max 50 chars, non empty Y
child student
<Title> The title of the String, max 50 chars, non empty. Y
achievement/award
<Description> The description of the String, max 200 chars, non Y
achievement/award empty.
<Date> The date when the child student String, short date format like Y
got the achievement/award MM/DD/YYYY, non empty
<ProfileHyperlink> The hyperlink to child Students String, max 1024 chars, non Y
profile web-page on the CS- empty, must be a valid URL
STEM application
The system will send the notification e-mail to the e-mail addresses of the related Parents
through some E-mail server.
E-mail recipient user can open and view the received e-mail by his/her own e-mail
reading software.
4. General Requirements
4.1 Graphical User Interface Requirements
4.1.1 Main GUI Goal
The new application will be specially designed for students of 1318 years old. GUI, problems,
education content, communication will be adopted for the middle-high school students. GUI has to
be attractive, user friendly and fun. It will contain more graphics than previous TC web-site. In
Liferay Portal (re-used by this application), the user interface is built with JSP pages.
There are no storyboards/wireframes specially designed for this specification (i.e. for teacher and
student-related functionality), but the following old storyboards can be re-used as an example of
the navigation and menus on the web-site: http://www.topcoder.com/wiki/display/docs/CS-
Stem+Student+and+Parent+Registration+Specification
The wireframes will be built after this specification contest will be done. Those wireframes will be
based on the specification details. And it will be iterative approach - once the wireframes are
completed, they will be presented to potential users and other stakeholders and determine what
screens, features, controls, permissions (etc.) need to be modified, added, or deleted.
4.1.2 Resolution
The application has to support 1024x768 minimal resolution.
Performance Requirements:
The system will be available 24x7 and it will achieve 99.9% uptime.
Content only web-pages have to be processed and rendered in lesser than 1 second (not
considering the speed of data response transfer).
Data driven web-pages have to be processed and rendered in lesser than 2 seconds.
4.3 Security
4.3.1 Security Roles
4.3.1.1 Permissions
All security checks will occur against permissions. Each function in the system will validate a
users permission against the required permission for the task. Non-registered users will have
read-only access to the application (like viewing forums and public blogs). The permission model
from Liferay Portal will be reused in our application. The account model from Liferay portal will be
reused in our application (not in scope for this specification). The blog/wiki/forum models from the
corresponding portlets in Liferay Portal will be reused to address the requirements from our
application.
The authentication and authorization is already implemented in the Liferay portal through the
JAAS (refer to the installation guide here). The authorization details are defined in the permission
model.
4.3.1.2 Roles
One or more permissions will be assigned to roles. A user may have more than one role. Below is
a list of roles and permissions. System user role was added just for clarity.
Non-
registered System
User Admin Student Parent System
Register to Application X
Unregister from Application X X X
Process Parent Approvals for Child Students X
File Parent Approval Documents X
Get Restricted to Activities Participation X
Request Parent Authorization X
Get Approved by Parent X
Get Authorization Request from Child Student X
Get Approved as Parent X
Perform Parental Control for Child Student X
Share Child Student Activities X
Perform Auditing X
Perform Logging X
Send E-mail Notifications X
4.3.1.2.1 Administrators
Users with the System Admin role can process student approvals from their parents.
5. Required Documentation
5.1 Specification Documentation
Requirements Specification (this document)
High Level Use Case Diagrams
Activity Diagrams
Logical data model (as needed)
Quality Assurance Plan (out of scope for this competition)
9. Glossary
9.1 Definitions
Definition Description
Non-registered This is a user, which did not register to the application.
User He/she will have an ability to register to the application (like
to register as a Student, or as a Parent)
Registered User This is an abstract user role, which described additional
allowed features for the users after they register to the
application - like an ability to unregister from the application
Student A student participating in CS-STEM activities. He/she will
register to the application, request approval from his/her
9.2 Acronyms
Definition Description
Completely Automated Public Turing test to tell Computers
CAPTCHA
and Humans Apart
CMS Content Management System
CS Computer Science
DARPA Defense Advanced Research Projects Agency
DOC MS Word Document format
GIF Graphics Interchange Format, a format of graphic files
GUI Graphical User Interface
HTML HyperText Markup Language
JAAS Java Authentication and Authorization Service
JPEG Joint Photographic Experts Group, a format of graphic files
NSA National Security Agency
PDF Adobe Portable Document Format
PNG Portable network graphics, a format of graphic files
RSS Really Simple Syndication
SSO Single Sign-On
STEM Science, Technology, Engineering, Math
TC TopCoder
URL Uniform Resource Locator
XLS MS Excel Document format
ZIP Postal code