# MarketAlert

The purpose of this project is to build a web application that enables subscribing to notifications when new products are published on various ad based marketplaces. The MVP will be only based on OLX.ba

## Setup

* Before setup please confirm that Docker is installed `docker --version`. If not install it from official site. 

### Setup with npm commands

1. Install packages  
`npm install`

2. Run setup script  
`npm run setup`  
this will create and run postgres image and then execute migrations

3. Run app  
`npm start` to run app without restart on changes or  
`npm run start-mon` to run app with automatic restart on code change


### Manual setup

1. Create postgres docker image   
`docker build -t marketalerts .`

2. Run postgres image with  
`docker run -e POSTGRES_USER=docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=marketalerts --name pg_marketalerts -d -p 5432:5432 marketalerts`

3. Install packages  
`npm install`

4. Run migrations from `app` folder  
`npm run migrate` or `npx sequelize db:migrate`

5. Run app  
`npm start` or `npm run start-mon` to run app with automatic restart on code change


### AWS SES

    - AWS SES credentials are handled with env vratiables
    - Notification emails are sent in batches of 50, by using SES templates
    - Make sure that you are using different templates for different envirorments

