Skip to content

seunzone/weConnect

Repository files navigation

WEconnect

Built with Spacemacs Build Status Coverage Status Maintainability

Application Description

WeConnect provides a platform that brings businesses and individuals together. This platform creates awareness for businesses and gives the users the ability to write reviews about the businesses they have interacted with
See Application here: https://weconnect-seunzone.herokuapp.com/

Table of Content

Features Technology Installation Testing API End Points

Features

Below are the features of my WEconnect app

Users

Users can register on WEconnect
Users can log into WEconnect
Users can view all businesses
Users can search for any business
Users can search businesses by category
Users can search businesses by location
Users can write a review for any business in the catalog
Users can register businesses in WEconnect
Users can update their businesses
Users can delete their businesses

Technologies used

Modern JavaScript technologies were adopted for this project

ES2015: Also known as ES6 or ES2015 or ECMASCRIPT 6, is a new and widely used version of Javascript that makes it compete healthily with other languages. See here for more infromation.

NodeJS: Node.js is an open-source, cross-platform JavaScript run-time environment which allows you enjoy the features of Javascript off the web browsers and implement server-side web development. Visit here for more information.

ExressJS: This is the web application framework for Node.js Visit here for more information

Postgresql: This is an open source Object-Relational Model (ORM) database.

React: React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes Visit here for more information

Webpack: webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset. Visit here for more information

Sequelize: This a promise-based ORM (Object Relational Mapper) for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL, SQLite and MSSQL and features solid transaction support, relations, read replication and more. Visit here for more information

Codes are written in accordance with Airbnb JavaScript style guide, see here for details.

Other helpful resources

Pexels: Free stock photos you can use everywhere. ✓ Free for commercial use ✓ No attribution required. Visit here to get started

Hero Patterns: A collection of repeatable SVG background patterns for you to use on your web projects. Visit here to get started

Installation

  1. Clone this repository into your local machine:
git clone https://github.com/seunzone/weConnect.git
  1. Install dependencies
npm install
  1. Start the development application by running
npm run dev
  1. Create a .env file in the root of your project and insert See a sample in the .env.sample Fill in the sample data with your prefared parameters

  2. Install postman to test all endpoints

Testing

  • To run server side test npm run test
  • To run client side test npm run test:client

Running end to end test

  • Make sure Java SDK is up and running on your device
  • Download Chrome driver [here] (http://chromedriver.chromium.org/downloads)
  • Download Selenium stand alone server [here] (https://www.seleniumhq.org/download)
  • Create a bin folder in the root directory of the project and drop files there
  • run npm run start:e2e-test on one terminal and npm run e2e:test on another terminal to run end to end test

API Routes

HTTP VERBENDPOINTFUNCTIONALITY
POST api/v1/businesses Add Business to catalog
PUT api/v1/businesses/:businessId Update business
DELETE api/v1/businesses/:businessId Delete business
POST api/v1/businesses/:businessId/review Add review for a business
GET api/v1/businesses/:businessId/review Get all reviews for a business
GET api/v1/businesses Get all businesses
GET api/v1/businesses/:businessId Get details of a business
GET api/v1/businesses?location=location Get businesses in a particular location
GET api/v1/businesses?category=category Get businesses in a particular category
POST api/v1/auth/signup Create a user
POST api/v1/auth/login Sign in a user