We want to create a scalable web application that displays the statuses of different equipment in real time.
Ideally we would like to hire a team with the different required skills (C++, JS...) but we are also open to hire multiple freelancers.
The first part of this application is the server. It collects the real time data from the equipment and store them in an In-Memory database (for fast input). At a scheduled time (ie. midnight), the server will convert the in-memory transactions to an On-Disk database (optimized for reporting and analytics).
The second part is the web interface where the users can log in, configure and watch the equipment. The main feature is the reporting, a friendly interface using drag and drop style to create reports and live dashboard.
A few development keys to remember: traceability (history of every change), user rights on everything, support all resolutions (phones, tablets, screens, large screens and projectors), multilingual and licensing(management and feature access)
Windows and Linux (ubuntu X64)
Git with Visual Studio Online
SKILLS for BackEnd (C++) programmer:
Optimization (call stack, recursive functions vs loops...)
Real time through WebSocket
BACKEND OVERVIEW of the tasks:
Create an observer for an MTConnect agent
Load balancer for the incoming data from the agent
Receivers with queue
Loaders(unload the queues into the row store)
Batch row store to column store (with aggregation)
WebSocket communication with frontend
FRONTEND OVERVIEW of the tasks:
All the interfaces (see attached documents).
Here is an overview of the initial screens after installation:
1. Input license
2. (set nameserver)
3. (input SSL certificate)
4. Set superadmin password
5. POSSIBLE SERVER REBOOT (for nameserver), ASSUME GO TO LOGIN
6. Company configuration (name, divisions, [sites, depts]). Sites and department are optional at this step because they could be defined later by another user
7. (Machines configuration) (machines are associated to sites)
8. (Shift configuration)
9. User management (add other users with lower privileges)
And the user screens at login:
2. Default dashboard
a. User can create a customized dashboard
3. Reporting from available machines
You will find a preview of the uses cases and class diagram in the attached files. This is a work in progress and any suggestion you can provide will be taken into account during the job
Please provide your experience with the mentioned technologies when applying.