Transcript Slide 1
CPSC 410 Project
Objectives
◦ Cover requirements for project
◦ Preview grading criteria for project
◦ Preview project timeline
Requirements Overview
Updates (10)
Integration (10)
Location (5)
AOSA presentation (10)
Design Review (15)
Separation of Concerns (10)
Testing (10)
Security (5)
Verification (5)
Evolution (5)
Demo (15)
Wow Factor (+20)
Basic Requirements
Build a custom designed Web application
Using
◦ <language>: Server
◦ <language>: Client
◦ Reliable data storage of your choosing
e.g. SQL database, Google App Engine, etc…
We are leaving the language choice up to you. In the
past Java Server Pages and HTML/CSS have been used.
◦ But iOS+Node.js, Android+RoR, etc are all valid
Your team is responsible for delivering a quality system
that demonstrates the functionality you specify for it in
your requirements
Basic Requirements
Your project could take a variety of forms:
-Multiple player on-line game room
-Online banking or stock market trading site
- Mapping/navigation aid
-Online community
-Multi-user location tracking and mapping system
-Auction site
Updates (15)
Users must be able to subscribe/unsubscribe to a
subset of content on the site
◦ e.g. Watch, Like, Friend, Follow, etc…
Users must be able to contribute and update content
When content is updated, users who are logged in and
subscribed must be notified immediately
Users should never see stale data
Implementation must be free of concurrency bugs
Integration (10)
Your application will use at least 2 Web services
Web services must provide API or REST-based service
◦ Must not just be a page that you link to or embed
Web services must be relevant to your application
◦ Provide valuable feature
◦ Not just “tacked on” as an afterthought
Location awareness (5)
Your application must leverage the user’s
location preferences, subject to privacy
choices.
Your application’s interface should reflect
where the user currently is in (near) realtime.
Design Review (20)
20 minute meeting
Present
HTML mockups of the UI
10 user stories for your custom application features
UML diagrams for your server code design
Focusing on package structure, design patterns, and data
model
Describe which Web services you will use and
why
Mention how you will handle data storage
Separation of Concerns (10)
Separate style and outline of pages
Separate page generation and business
logic
Separate security concerns
Testing (10)
Provide unit tests for your
application
Provide useful functional tests
Document acceptance criteria.
Test driver will act as Web
client
Reach 60% statement
coverage for full credit
◦ Use a suitable coverage
tool, e.g. EclEmma
Security (5)
Review your code against the SANS Top-25 list
(e.g. XSS, SQL injection, etc)
Verification (5)
Run a static analysis tool like FindBugs on
your Java code
Fix all of the (important) bugs that it finds
Evolution (5)
You may provide a 1 page evolution
document
Document can describe how your final
design is different from that described at
your Design Review
◦ UI changes
◦ UML -> implementation changes
Provide justification for the changes and
no credit will be deducted
Project Demo (20)
20 minute meeting
Demonstrate that the system meets the
end-user observable requirements
Especially…
◦
◦
◦
◦
Updates
10 user stories
Web service integration
Location
Wow Factor
Novel functionality
Sophisticated DB indexing and search
Highly responsive or scalable performance
Custom algorithms
Rigorous JavaDoc and coding style
Polished UI or original artwork
Teams
Each team will have four members. Once
formed, please email
[email protected] with your team
information. For each member of the
team, you must provide:
◦ name (as known to the registrar), and
◦ undergraduate CS email id (letter-digit-letterdigit).
Submissions
10 user stories (at design review)
HTML screenshots (at design review)
UML diagrams (at design review)
Evolution document
Team Assessment
Important Dates
Sept 14: Group Formation due, Github
usernames submitted.
Sept 21: Email project proposal.
Oct 15-17: Design Reviews
Nov 26-28: Project Demos
Nov 30: Source Code, Team Assessment
and Evolution documents due
Homework
Form your team (Piazza can help)
e-mail team to [email protected]
by next Friday
include names and e-mail
Create Github username
Read Doom3 article for Monday.