Nokkis

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
  • Server
    • Design
      • PHP5
      • MySQL
      • HTML, XML
    • Features
      • Ref. number generation
      • Ref. number validation/null validation
      • Event creation/deletion/modification
      • Event status
  • Tools
    • VCS
      • Mercurial

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
  • Week 4 (2.-8.2.09)
    • Preliminary requirements analysis
      • Lotta
      • Everyone
    • Start design document
      • Lotta
      • Everyone
    • Client prototyping
      • Rod
      • Kaima
    • UI design
      • Matti
  • 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
  • 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
  • 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?