1.0.0 • Published 3 years ago

priceit v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

PriceIt

The first value-based pricing web based solution.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

To make this project run, we assume you already have the version 12.18.0 of node.js installed as well as npm, the node package manager and git, the version manager tool. Once you have it, clone the repository with the following command:

git clone https://gitlab.com/pricing-pact/priceit.git

You also need the pm2 node package globally installed as well.

npm i -g pm2

Installing

To make priceit run on your local machine, install the node packages and start the app

npm install
npm start

A proxy will be started thanks to the pm2 package, the server with the typescript dev compiler and the client with the webpack dev builder. A webpack bundle analyzer will be open on the port 8888 of your localhost to let you see the size of your packages. You will be automatically connected to the dev db instance.

Running the tests

For now the test are only run on the server side to test the algorithms. We will implement tests on the frontend part as well but this is not a priority for now. To run those, type the following command

npm run test:server

Deployment

The code pushed on the dev branch is deployed on the dev instance while the code pushed on the master branch is deployed on the production instance. The infrastructure is managed on AWS with ElasticBeanstalk and a bunch of other services. By default, you don't have the permissions to deploy on the dev instance or the production instance without a code review.

Built With

  • React - The frontend library developed by Facebook
  • Redux - A state container
  • Graphql - A query language for API
  • Node - A JavaScript runtime built on Chrome's V8 JavaScript engine
  • Typescript - A typed superset of JavaScript that compiles to plain JavaScript
  • Sequelize - Promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server
  • PostgreSQL - Relational Database

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

DB schema

Here is the different schemas of the actual databases:

Authors

Current

  • Tech lead : Sébastien Le Bosser
  • Senior dev : Dimitri Uytterhoeven
  • Intern : Pierre Dubreuil

Previous

  • Tech lead : Martin Delobbe
  • Junior dev : Sébastien Le Bosser
  • Intern : Marjorie Vermin