Today I was thinking about the most basic building block of most internet-powered software(s) in the modern world. Deep down in my admiration of how internet and software have changed and continues to change the world, I settled on one thing which forms the backbone. And that basic block is plain and dumb yet immensely important part of all software - meet the DBMS. It stands for Database Management System and provides software with the power to remember things across computers, phones and boundaries!
Technically speaking, there are a ton of things that can be done with DBMS, but today I decided to test my sharpness by building a
Dot Collector over a week. Dots, conceptually a text as of this demo, can be sent by a web client and a central server can pull the dots for processing or show insights to end-users. This project aims at creating a simple bootstrap for reading/Write queries based on a Mongo powered Cloud NoSQL Backend, React (without JSX), Express, NodeJS.
This is an amazingly simple yet massively scalable system! That opens opportunities for the following types of applications to name a few:
- Acknowledging digital-ads fueled transactions on browsers
- IoT based data collection to analyze device health
- In an office setting, to analyze the performance of employees in real-time.
- Conduct live short-time surveys
- Endless more opportunities!
Before I dig deeper let me explain the choice of my tools:
- React Website - Extensible and powerful way to build websites. In short, it keeps the code extensible to use cases using limited software engineering resources!
- NoSQL Database - I used a free version of a database - MongoDB Atlas. It can be easily paid for and the expanded with more support and/or customizable to needs.
- NodeJS Backend - I used Express which can be easily deployed in an AWS backend and automatically scale to millions, then billions of users without much effort.
Few goals I set for this task:
- Ability to send Dots to a backend and show them on any UI
- Ability to query Dots and filter them depending on certain conditions, in this case, time
Before I jump over to implementation details, enjoy my test setup’s recording:
Ability to send Dots to a backend and show them on any UI
Ability to query Dots and filter them depending on certain conditions, in this case, time
I have made the source openly available and sharable on DotCollector GitHub repo.
If you can use such a system to reduce the
cost of doing business, feel free to consult someone ( or me :-P ). All you need is to estimate how much you could save in terms of
$$ and then create a software building, deployment and maintenance strategy around it.
nodejs nosql react dot-collector