Since I remember understanding the concept of software, built by someone to somebody who need something i am deeply fascinated by it.
I am not new to the whole game of building business, being part of both failures and successes im somehow aware of what a business need to achieve minimal success. What i am new is the concept of building in public, learning in public and from the start using the public attention as both, leverage to grow a organic audience to what can be a successful business and creating an early case for skin in the game as public failures are quite hurtful have significant moral cost.
So with this series of articles i want to achieve the following goals.
- Build a simple viable business(make some money maybe?)
- Learn as much as i can
- Share experiences so others can learn as well
- Make some money?
The idea and motivation
Most ideas I have for projects are, in fact, my wife's ideas. She is a Professor of Environmental Psychology at the Federal University of Roraima (UFRR), and she loves to tell me what I should build with software.
This time, she needs to gather a huge list of statistical data from schools in major cities of Brazil to study the impact of green areas in school life.
I believe good products are those that solve real problems we have in our lives so my motivation aligns with hers for this one, and I really think that would be a great product to use not just in academic life but in many other areas.
Product
The product I am going to develop is a simple webpage that delivers statistical data based on an area the user draws in a map widget. That's it, map to statistics will be the basis for this product.
The website will consist of two sections after users login. First, they will be greeted by a map widget, featuring a searchable bar to search for specific locations and a toolbox to draw polygons.
The user will draw areas on the map from which they want to obtain statistical analysis and data. They can save these areas with a name attached to them. After saving, a card displaying the basic data of the drawn polygon will be shown in a side bar. This side bar will list all polygons created by the user.
The cards will display a 'Statistics' button upon saving, which will initially be disabled. This button will be enabled when the reports for the selected types of statistical analysis and data sources, as specified by the user, are ready. This functionality will be handled by an asynchronous worker.
After the report is ready, the button will be shown as enabled, and the user will have access to the full report on that area.
In the report sections, the user will have access to one or multiple reports, based on the data sources the user has subscribed to. This aspect will be discussed in more detail at a later stage, as most of the product development will be focused on this area where we can be the most creative. As we launch and grow, we will have the opportunity to add multiple data sources and types of analysis based on market feedback and research. For our Minimum Viable Product (MVP), we will initially include two data sources with basic analysis.
Geospatial data consists of spectral analysis of the soil and weather data, as well as dvi (difference vegetation index) and ndvi (normalized difference vegetation index) imaging and statistics. This type of data is particularly useful in agriculture and engineering research.
Geographical Statistics consists of the analysis and statistics of populations and socioeconomic databases. It is commonly used by researchers, students, journalists, and pretty much everybody who needs basic information from a particular area.
One important aspect of this product is that the data needs to be sourced from reputable sources. We will also need to implement an audit system to ensure our users can rely on the data we provide. This aspect of the project, coding the trust and reliability of the data, will be very fun as i have no idea how to do it yet.
Basic system design
I am not going to dive too much into system design as I believe it is currently pointless. Most of the crucial decisions regarding system design will be made along the way. For now, I will opt for a simple implementation, including a server to handle all requests and events, a worker to process asynchronous jobs that require more processing power, a storage solution, and a front-end application.
We will delve deep into each topic as development progresses. All repositories will be public, and I will document each step, showcasing all interactions with anyone who chooses to participate in any form in this project. A lot of things can and will go wrong and i am expecting to get the most out of it. Until the next update!
Catch me on twitter any time.
Photo by Clay Banks in Unsplash
Top comments (0)