Skip to content

yenyin262/boomtown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boomtown 🏙

A Web-Based Application that allows users who have a registered account to browse through their own items and other User's items and profile. The Users can share their own items. The UI Application is built on React and Material UI library.

It features a state management tool known as Redux, which holds the entire state application allowing predictable state updates. This can be interacted with by sending actions, where the action creators make an action.

PostgreSQL is used to store shareable items and user info. It uses Node.js/Express as its web server which connects to client via Appolo, and GraphQL for its client-facing API.

Technologies:

The following technologies were applied in building and delivering Boomtown's backend application:-

  1. JavaScript
  2. GraphQL
  3. Express
  4. Node
  5. POSTGRESQL
  6. Apollo

Libraries:

  1. React
  2. Redux
  3. React Final Form
  4. Material UI

SnapShots

Welcome Page

Screen Shot 2019-06-09 at 10 50 07 PM

Items Page

screencapture-localhost-3000-items-2019-06-09-23_36_56

Profile Page

screencapture-localhost-3000-profile-26-2019-06-09-23_42_26

Share Page

Screen Shot 2019-06-09 at 10 48 09 PM

Personal Learning Developments:

  1. GraphQL can be used to Query from an API and/or Database.

  2. GraphQL requires a Schema which consists of TypeDefs & Resolvers

  3. Resolvers are a method or a function that resolves a value for a field or type in a schema.

  4. Efficient Query Language that mitigates over-fetching and under fetching data

  5. React Final Form subscribes to all changes and is framework agnostic

  6. JSON Web Token contains all data to validate users

  7. Protecting passwords with salted password hashing

Instructions to run the project

Server Set-Up

Commands must be run from the server directory:

Installation

npm install

Run

npm run start:dev

Tests

Just linting:

npm run lint

Run linting, and fix any errors:

npm run lint:fix

Run Jest tests:

npm run jest

Run Jest tests, and watch for changes:

npm run jest:watch

Run all tests:

npm run test

Client

Commands must be run from the client directory:

Installation

npm install

Run

npm start

Build

npm run build

Tests

Just linting:

npm run lint

Run linting, and fix any errors:

npm run lint:fix

Run all tests:

npm run test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published