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.