Comunidad

Wizeline Project Submission

Lumiata COVID-19 Global AI Hackathon

Overview

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.

Why Comunidad

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:

Business Benefits

  • 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.

User Benefits

  • 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.

Architecture Diagram

Figure 1. Comunidad High-Level Architecture Overview

Information Exchange

Arrow Connections

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.

Dotted Lines

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.

Subsystems

The Comunidad architecture consists of the following layers that interact with each other:

  • Client application
  • API gateway
  • Microservices

Client

This is the main access point of the application such as a web browser, a progressive web application or a native mobile application.

Gateway

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.

Authorizer

A serverless function whose only purpose is to grant or deny access to clients depending on their destination and current credentials (or lack thereof).

User service

Responsible for managing user related information such as name, email, address, credentials, ID, avatar, picture, phone, login history, etc.

Offering service

Responsible for managing either Job or Service offer information such as offer type, location, owner ID, availability, review IDs, submission IDs, etc.

Submission service

Responsible for managing job or service requests information such as submitter ID, submission date, status (pending, approved, rejected).

Review service

Responsible for managing users and offers review information such as offer ID, reviewer ID, rating and comment.

Messaging service

Responsible for providing a real time service to users to message each other through the platform itself.

Notification service

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.

Scheduler service

Responsible for providing a service to other services to schedule recurrent or future tasks.

Technology Stack

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.

Frontend Technologies

  • Language: JavaScript
  • Frameworks: React
  • Dependencies: Bulma, Typescript, Ant Design

Backend Technologies

  • Frameworks: Firebase
  • Dependencies: Firebase

Repositories

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.

Built With

Share this project:

Updates