This is the experimental project to manage entry and exit of a room by WebCam.
Medusa is consist of several micro services:
-
- Controlling WebCam and sending images to the following service
-
- Simple API server that receives images from Eye and push them to a Kafka cluster
-
- Consuming and analyzing images. When some events are detected, publish them to a RabbitMQ cluster
-
- Subscribing events and providing API for a dashboard
-
- Dashboard (SPA hosted by nginx)
+-----------------------+
| |
| Eye (WebCam) |
| |
+-----------+-----------+
|
| HTTP
v
+-----------+-----------+
| |
| Synapse (API) |
| |
+-----------+-----------+
|
|
v
+-----------+-----------+
| |
| Kafka |
| |
+-----------+-----------+
|
|
v
+-----------+-----------+
| |
| Brain(Image Analaysis)|
| |
+-----------+-----------+
|
| AMQP
v
+-----------+-----------+
| |
| RabbitMQ |
| |
+--------+-----+--------+
^ |
| | AMQP
| v
+--------+-----+--------+ +--------------+
| +---->+ |
| Gazer (API) | | MongoDB |
| +<----+ |
+-----------+-----------+ +--------------+
^
| HTTP
|
+-----------+-----------+
| |
| Stones (Dashboard) |
| |
+-----------------------+