Skip to content

Latest commit

 

History

History
executable file
·
52 lines (42 loc) · 3.89 KB

README.md

File metadata and controls

executable file
·
52 lines (42 loc) · 3.89 KB

Therr App

main: CircleCI | stage: CircleCI

Mobile Build

main: Build status

Description

A social network that connects people by proximity through the distance of time

Getting Started

First we need to setup Postgres and Redis to run locally. Mac users can install postgres with brew. It's best to configure postgres with no password for simplicity. We can also create a user and grant them superuser privileges. See 'Database Setup below'. Also make sure postgis is installed along with postgres as its required for maps services. See 'Database Setup below'.

Database Setup

We first need to create our 4 dev databases therr_dev_users, therr_dev_maps, therr_dev_reactions, therr_dev_messages and create a schema, "main" in each db. Then we can proceed to run the database migration scrips found in each sub-directory. See each microservice README.md (ie. therr-services/users-service/README.md) for detailed steps.

Installing Dependencies

We have some helper scripts in the root package.json. Try npm run install:all to loop through each microservice and install npm packages. This script first preps your environment to ensure you have the correct npm and node version. It's best to use nvm to manage these versions. Run npm run build:all:dev from the root to build all the custom libraries.

Running The App Locally

Setup the .env with correct credentials. Each microservice has it's own package.json with start scripts. We can simply build with npm run build:dev then run npm run start to run the nodejs service with nodemon. See each microservice README.md (ie. therr-services/users-service/README.md) for detailed steps.

Documentation

Documentation is mantained within the repo to align with a mentality of inline documentation, knowledge share, self documenting code, and consolidation of information/configrations.

Libraries & Utilities Docs

These packages should use treeshaking and emphasize reusability, clean code, single-purpose methodologies

API Gateway Docs

API Gateway is a public service that interfaces with microservices. It adds a layer of abstraction along with security and validations.

Microservice Docs

Microservices are secured in a private subnet (excluding websocket-service).

Frontend Docs

The web frontend and mobile app frontend share a common redux layer from the Therr React Library