|
|
3 年之前 | |
|---|---|---|
| .. | ||
| bill-of-materials | 5 年之前 | |
| datasheet | 6 年之前 | |
| img | 6 年之前 | |
| legacy | 3 年之前 | |
| notes | 5 年之前 | |
| API-Protocol.txt | 5 年之前 | |
| API-acos.txt | 5 年之前 | |
| API-aros.txt | 5 年之前 | |
| Architecture.txt | 6 年之前 | |
| DIU-Assembly.md | 6 年之前 | |
| Database-Schema.md | 5 年之前 | |
| Module_Overview.txt | 6 年之前 | |
| Paddle-Format.md | 6 年之前 | |
| README.md | 6 年之前 | |
| Server.md | 6 年之前 | |
| avls-to-server.txt | 6 年之前 | |
| billdb-to-server.txt | 6 年之前 | |
| notes.md | 6 年之前 | |
| passdb-to-server.txt | 5 年之前 | |
Popufare is a free/libre/open source and open source hardware bus fare system.
This includes hardware and software for fare collection on buses and server infrastructure to manage ridership.
This document is intended to give a high level overview of the different components of the system. Popufare is quickly evolving and this document is expected to change as the system continues to grow.
Popufare can be split into four main sections
The Popufare Bus Unit (PBU) consists of a Driver Interface Unit (DIU) and a Passenger Interface Unit (PIU).
The Driver Interface Unit (DIU) is a small computer with screen that allows driver login, driver route management, fare acceptance and fare display. The DIU connects to the Passenger Interface Unit (PIU) via a physical connection to receive bus fare media presented by the ridership.
The DIU also manages a network connection to the central server through a GPRS modem connecting to a 3G cell phone network. PBU/DIU communication to the central server consists primarily of pushing pass usage updates, receiving pass updates, communicate bus position as well as any other server to bus fare unit communication that is needed.
Custom pass types can be added with rules for versatile and complex approval criteria.
The Driver Interface Unit (DIU) has the following list of main tasks:
Most peripheral connections use a USB to serial connection to communicate.
Connection to the central server is done through an SSH tunnel, connecting local ports to the DIU to listening ports on the central server where each service resides. Encryption is done though SSH to alleviate the complexity of managing the secure connection and to allow for ease of debugging.
Locally to the DIU, the rules for pass acceptance criteria are encoded as a scheme file that is run against every pass type received. Since the rules are evaluated as code, the criteria can be complex and can include:
Each of these pass acceptance criteria can be combined and new ones can be added as desired.
The Passenger Interface Unit (PIU) has the following list of main tasks:
There are plans of adding a camera to the PIU to accept QR and bar codes but as of yet, this is not implemented
The central server manages connections from the fleet of deployed Popufare Bus Units (PBUs).
This includes:
The API acts as an abstraction to query, manage and update data in the database.
The Administrative Web Interface provides a tool to access and manage the system for administrators and other privileged operators of the system.
The Administrative Web Interface provides facilities to:
The web store front allows for ridership users to order cards in addition to purchasing and recharging passes on their cards.
Users can register with the system and register cards they already have in their position with their user account or purchase new cards to be shipped. Once a card has been associated with a ridership user, passes can be purchased as desired.
Passes can be 'queued' in an order so that when the current pass has been depleted, the next pass in the queue is automatically registered as the next 'active' pass.
See the appropriate files for individual licenses.
By default, Popufare source code is primarily under an Affero GNU Public License v3 (AGPLv3) (see LICENSE.txt for details)
and Popufare
By default, non source code digital artifacts are under a Creative Commons, By Attribution, Share Alike (CC-BY-SA) license.
Popufare uses third party libraries and, where possible, the licenses have been kept unaltered.