Wizeline Project Submission
Lumiata COVID-19 Global AI Hackathon
The following sections explain what the project is about and how it works.
What Comunidad Is
Comunidad is a cloud-based platform that aims to centralize diverse current local initiatives that are focused on reactivating the local economy, starting from the micro and small business level.
Comunidad is meant to merge other local initiatives that have similar interests but have not been connected to work for each other.
By aiming for local businesses, we designed a solution that is simple to replicate in other countries and enables to integrate additional initiatives.
How Comunidad Works
Comunidad aims to solve the following core problems that the local communities are now facing:
- Lack of visibility for small businesses
- Unnecessary grocery trips to a supermarket outside your local area
- Unemployment of independent contractors
- Absence of employees due to fear of contagion
Who Uses Comunidad
Comunidad is open to everyone that has internet access and is an active contributor of their local economy.
Our main focus group is represented by people between the ages of 20 and 45 which are typically more connected to the internet, and are eager to help their community.
Features and Benefits of Comunidad
The project comprehends a wider set of features than the ones shown within the GitHub project. However, the team aimed for a viable MVP to showcase the core of the project. The following business and user benefits characterize the MVP:
- Provides a centralized network of goods and services providers from a specific area.
- Facilitates to measure the economic activity in a specific area of each city where it is implemented.
- Enables to integrate additional features because of the microservices architecture approach of the application.
- Provides visibility to businesses in their local community.
- Enables unemployed people to offer professional services in their communities.
- Brings direct connections between providers and solicitors.
- Encourages the use of alternate payment methods, such as exchange of services or cryptocurrencies.
Architecture of Comunidad
The Comunidad platform follows a microservices approach and is hosted on a cloud instance. This approach provides clean modules to have defined boundaries and responsibilities and to make use of scalable technologies like cloud hosting and modern best practices such as the twelve-factor app.
The following architecture diagram shows a high level overview of the components required for the application to work.
Figure 1. Comunidad High-Level Architecture Overview
The arrows represent the connections which are directly or indirectly exposed through the gateway to the clients. These services will be part of the public API of the system.
The dotted line connections are service to service communication. These are services APIs which are only accessible internally. They are not exposed nor accessible to the clients.
The Comunidad architecture consists of the following layers that interact with each other:
- Client application
- API gateway
This is the main access point of the application such as a web browser, a progressive web application or a native mobile application.
The API Gateway is the main and only entry point of the backend application. Its purpose is to provide a central point of contact for the clients and perform tasks like Load Balancing and authorize clients through the Authorizer function.
A serverless function whose only purpose is to grant or deny access to clients depending on their destination and current credentials (or lack thereof).
Responsible for managing user related information such as name, email, address, credentials, ID, avatar, picture, phone, login history, etc.
Responsible for managing either Job or Service offer information such as offer type, location, owner ID, availability, review IDs, submission IDs, etc.
Responsible for managing job or service requests information such as submitter ID, submission date, status (pending, approved, rejected).
Responsible for managing users and offers review information such as offer ID, reviewer ID, rating and comment.
Responsible for providing a real time service to users to message each other through the platform itself.
Responsible for providing a service to other services to send notifications to users. These notifications can be sent via SMS, in app notifications or email.
Responsible for providing a service to other services to schedule recurrent or future tasks.
The Comunidad project comprises a frontend Client application and a cloud hosted backend. Each of these components uses a different set of technologies explained in the following sections.
- Frameworks: React
- Dependencies: Bulma, Typescript, Ant Design
- Frameworks: Firebase
- Dependencies: Firebase
This section contains the GitHub repository for this project.
Lumiata Covid Hackathon: Contains the code for the Comunidad prototype.
Installation instructions to run the project
The first step after cloning the repository is to install yarn, if yarn is already installed then we run yarn install inside the cloned repository.
Last step is to run yarn start.
Try It out