Skip to content

deekshaarora12/visit-case-s21b12

 
 

Repository files navigation

Recording Visit Counts

Any business visited by customers wants to count footfalls.

This project is about simulating data from a footfall sensor and recording it for reporting.

Decomposition

At a top level, the program runs in two processes - the sender and the receiver.

send-rcv

The Sender is responsible for simulating the footfall sensor. The Receiver stores the data.

The Sender sends data to the Receiver using console redirection. Run them on the command line as follows:

sender-executable | receiver-executable

This would make the console-writes of the sender become the console-reads of the receiver.

Decomposition of responsibility within the Sender and Receiver

The naming of source files within the Sender and within the Receiver give their internal decomposition.

The Code

This project follows the practices and tools listed here.

The Interface

We document the interface between the Sender and the Receiver as test cases.

The Sender and Receiver are testable on their own:

  • The Sender is testable without the Receiver - so we can develop for another data-source, test and be confident about integration.
  • The Receiver is testable without the Sender - so we can enhance without re-testing against all Receivers again.

Minimum Functionality

To simulate different patterns of footfalls, the Sender reads a CSV file as input.

The Receiver writes aggregates into another CSV file, which a spreadsheet app can load for further processing.

Aggregates are in the form of:

  • Average footfalls per hour, shown over a day
  • Average daily footfalls in a week
  • Peak daily footfall in the last month

Extended Functionality

Footfall sensors can malfunction. The facility keeps a manual log of footfalls as well. Make it possible to reconcile the records with the manual log, without having to simulate the input again.

Evaluation Criteria

See here for the evaluation criteria of this exercise.

About

visit-case-s21b12 created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 86.2%
  • PowerShell 8.5%
  • Smalltalk 5.3%