Project plan
1. Introduction
Physical access control to events, such as conferences, workshops and concerts, is logistically a time-consuming task. This project implements a system for access control, based on 2D-bar codes. The basic idea is that the customer gets access to an event and gets a access-granting 2D-bar code. The printed document with the bar code can then at the physical access control site, be checked with a standard laptop and webcam.
2. Vocabulary
- 2D-barcode - a 2-dimentional QR (quick response) code
- Client (in the scape of this project) - a computer equipped with a web-camera running a software reading 2D-barcodes and associating recognized codes to tickets payed in advance.
- Server (in the scape of this project) - a computer storing user registrations and ticket data. A backend for client queries.
- Mercurial - a distributed concurrent version system
3. Project Organization
Software development team
- Lauri Heino (Kaima)
- Lauri Hyvärinen (Rod)
- Mikko Mäkipää
- Matti Palosuo
- Lotta Söderholm
Instructor
- Ilmari Vacklin
Client
- Mikko Pervilä
4. Risk Analysis
- Client speed and reliability
- Server reliability
- Schedule
5. Project hardware & software requirements
The software and hardware requirements are set as following:
5.1 Software
- Client
- OS
- JVM / Linux
- User space
- 2D barcode reader
- barcode reader library
- client-server interface
- 2D barcode reader
- OS
- Server
- Design
- PHP5
- MySQL
- HTML, XML
- Features
- Ref. number generation
- Ref. number validation/null validation
- Event creation/deletion/modification
- Event status
- Design
- Tools
- VCS
- Mercurial
- VCS
5.2 Hardware
- Client
- Webcam
- PC
- Network connection
- Server
- PC with LAMP (Linux / Apache / MySQL / PHP) software installed
- Network connection
6. Size & cost estimates
- 1000 man-hours
- Cost 0
7. Project / team division
- Lauri Heino
- Client programming
- (Client) Unit Testing
- Client user manual
- Lauri Hyvärinen
- Client programming
- Client-server architecture design
- Protocol design
- Event cache design
- Mikko Mäkipää
- Server programming
- Protocol design
- API documentation
- Event generation API
- Client-server API
- Event cache design
- Matti Palosuo
- Client UI Design
- Server Design
- Wiki/web maintainer
- Server user manual
- Lotta Söderholm
- Server programming
- Testing
- Testing Plan
- Regression Testing
- Test Manager?
- Nobody/everybody/your mom
- Support document
- Final document
- Requirements document
8. Project schedule (preliminary)
- Week 1 (12.-18.1.09)
- Starting the project
- Week 2 (19.-25.1.09)
- Project plan ready, starting with the requirements analysis
- Start server design
- Week 3 (26.-1.2.09)
- Start Requirements analysis
- Lotta
- Server prototype design
- Mikko
- Client prototyping
- Rod
- Kaima
- Start UI design
- Matti
- Mercurial setup ready
- Rod
- Start client technical specification
- Rod
- Kaima
- Start protocol design
- Mikko
- Rod
- Start Requirements analysis
- Week 4 (2.-8.2.09)
- Preliminary requirements analysis
- Lotta
- Everyone
- Start design document
- Lotta
- Everyone
- Client prototyping
- Rod
- Kaima
- UI design
- Matti
- Preliminary requirements analysis
- Week 5 (9.-15.2.09)
- Start client technical specification
- Rod
- Kaima
- Finalize server design
- Mikko
- Client prototyping
- Rod
- Kaima
- Finish Server UI design
- Matti
- Start client technical specification
- Week 6 (16.-22.2.09)
- Client design
- Client prototyping
- Rod
- Kaima
- Start client programming
- Rod
- Kaima
- Start server programming
- Mikko
- Lotta
- Finalize database
- Lotta
- Week 7 (23.-1.3.09)
- Finish client technical specification
- Rod
- Kaima
- Finish protocol design
- All
- Server programming
- Mikko
- Lotta
- Client programming
- Lauri
- Kaima
- Matti
- Finish Client UI design
- Matti
- Finishing the requirements analysis
- Finish client technical specification
- Week 8 (2.-8.3.09)
- Vacation
- Week 9 (9.-15.3.09)
- Server programming
- Client programming
- Finish design document
- All
- Week 10 (16.-22.3.09)
- Client programming
- Server programming
- Regression Testing
- Week 11 (23.-29.3.09)
- Starting with integration and system testing
- Finish server programming
- Regression Testing
- Design document review
- Week 12 (30.3.-5.4.09)
- Finish client programming
- Unit testing
- Stress testing
- Regression Testing
- Week 13 (6.-12.4.09)
- Unit testing
- Stress testing
- Week 14 (13.-19.4.09)
- Unit testing
- Stress testing
- Demo
- Week 15 (20.-26.4.09)
- Unit testing
- Stress testing
- Week 16 (27.-3.5.09)
- Finishing the project
9. Follow-up and reporting procedures
- Reporting the recent & ongoing activities at weekly meetings (and on irc?)
- Comparison of the current status and the plan
- Monitoring the risks
- Possible re-scheduling etc.
- Reporting to the customer?