Skip to content

Client application built with React, Redux, Webpack: part of a multi-service oriented architecture.

Notifications You must be signed in to change notification settings

sepehrvakili/places-app-web

 
 

Repository files navigation

Places

Access live app here Save the places you love most. Discover places your friends love.

Table of Contents

  1. Product
  2. Architecture
  3. Technology
  4. Microservices
  5. Development
    1. Environmental Variables
    2. Installing Dependencies
  6. Team
  7. Contributing

Product

Place is a new point of interest discovery platform. Enables users to share location and coordinate meetups.

The web platform relies on a main API server, and 4 microservices for full end-to-end functionality.

Places has two client facing aspects: Mobile and Web.

Web

Web application empowers the social components of Places.

It enables users:

  • To discover new places by following other users.
  • To discover new places through personalized recommendations.
  • To view their places on a map view.
  • To locate their friends for meetup coordination.

Mobile

Mobile enables users to pin places of interest along with a note and optional video.

React Native mobile application enables users:

  • To pin places of interest with a note and optional video.

There are 4 microservices which empower Places:

  • Background Tracking Service
    • Persists each users current and previous location allowing users to see where their friends are and to identify their current mode of transport.
  • Video Storage Service
    • Enables video storage on S3.
  • Recommendation Engine
    • Provides custom recommendations to users.
  • Data Generation Service
    • Generates random users and places. Allows automated movement of users.

Architecture

Services Diagram

View Service Diagram

Schema Diagram

View Schema Diagram

Tech Stack

Front-End

  • React, Redux, React Google Maps, Webpack
  • Webpack HMRE, Babel, Eslint, Airbnb Style Guide
  • MaterializeCSS, Font Awesome

Back-End

Go to the API server repo.

  • Node, Express, PostgreSQL, PassportJS, Multer

Mobile

Go to the mobile app repo.

  • React Native

Microservices

Access each microservice repo separately below:

Development

Installing Dependencies

In order to run the application locally in its full scope, you must have all other microservices and the API server installed and running.

Environmental Variables

All services must have their environmental variables correctly configured in their env/ directory. (refer to each service's respective repo under Microservices section).

For this web application setup the env vars in two files:

  • Create a clientDev.js file based on the .clientEnv.sample file: used to access environmental variables from within the client JSX components and JS files.

  • Create a development.js file based on the .env.sample file: used to access environmental variables from the client server.

Once all services are running, follow the commands below to run this primary web application.

Running the Web App

From within the root directory:

npm install
npm start

Roadmap

View the project roadmap here

Team

Contributing

See CONTRIBUTING.md for contribution guidelines.

About

Client application built with React, Redux, Webpack: part of a multi-service oriented architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 64.1%
  • JavaScript 34.9%
  • HTML 1.0%