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.
The following technologies were applied in building and delivering Boomtown's backend application:-
- JavaScript
- GraphQL
- Express
- Node
- POSTGRESQL
- Apollo
- React
- Redux
- React Final Form
- Material UI
-
GraphQL can be used to Query from an API and/or Database.
-
GraphQL requires a Schema which consists of TypeDefs & Resolvers
-
Resolvers are a method or a function that resolves a value for a field or type in a schema.
-
Efficient Query Language that mitigates over-fetching and under fetching data
-
React Final Form subscribes to all changes and is framework agnostic
-
JSON Web Token contains all data to validate users
-
Protecting passwords with salted password hashing
Commands must be run from the server
directory:
npm install
npm run start:dev
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
Commands must be run from the client
directory:
npm install
npm start
npm run build
Just linting:
npm run lint
Run linting, and fix any errors:
npm run lint:fix
Run all tests:
npm run test