Coder Social home page Coder Social logo

pricebook's Introduction

Homepage

๐Ÿ›’ Pricebook

A grocery price tracking tool that helps users find the best prices in their local stores and detect patterns so they can recognize when a sale is truly a good deal.

Table of contents

โ˜€ Introduction

Back in August 2020, I found myself comparing grocery prices online to find the best places to get my food as a student on a budget. ๐Ÿ˜… I wondered if there were any better solutions to solve my problem and came up with this project idea. I decided to jump on it as it provided a good opportunity to learn about some topics that had been hanging in my head for a while:

  • ๐Ÿ•ท Web scrapping
  • ๐Ÿงผ Application development following some variation of the clean architecture
  • ๐ŸŽจ Basics of decent UX design

If you're interested, you can read more about how I approached this project, how I managed its development and what I learned from this whole experience.

๐Ÿ“ท Preview

Listings page

This page allows users to search for listings across various grocery stores. Listings can be clicked on to view more details.

Listings page

Listings details drawer

When a user clicks on one listing, a drawer opens up on the right with more details about the targeted listing and its price history.

Listings details drawer

Groups page

This page lists all of the users' groups. These groups make it easy for the user to compare similar products together and identify which is the best value at the current moment.

Groups page

Group creation page

The group creation page allows a user to create a group and select his preferred comparison unit. Listings can be added through the listings selection drawer by clicking on the "Add Listings" button.

Group creation page

Listings selection drawer

The listings selection drawer is similar to the listings page. The user can search for specific listings in the search bar and selected listings will appear right over it.

Listings selection drawer

๐Ÿ’ฟ Setup

Prerequisites

Make sure you already have those programs:

  • NodeJS (I used version 16.13.2 LTS)
  • Docker (I used version 20.10.12)

Installation steps

Run the following commands to install the project:

# Clone the project in a directory of your choice
$ git clone [email protected]:vcheeney/pricebook.git

# Move into the project directory
$ cd pricebook

# Create the .env file from the template
# You can edit the values if you wish but defaults will work fine.
$ cp .env.example .env

# Install the project dependencies
$ npm install

# Build the project
$ npm run build

Usage

In one terminal, start the database with the following command and leave the terminal running until you would like to shut the DB down.

# Start the database
$ docker-compose up

In another terminal, run the following command:

# Start the application
$ npm start

# If you prefer to start the development server
$ npm run dev

Access the app at http://localhost:3000/

๐Ÿ›  Technologies Used

๐Ÿงช Tests

Tests have been written for the core of the application. Run them with the following command:

# Run the tests
$ npm run test

๐Ÿšฆ Project Status

I archived this project in January 2021. The project used to be hosted on Vercel and MongoDB Atlas, but I shut it down as I lost interest in the problem the product was trying to solve.

Rather than delete the whole thing, I downloaded most of the content the tool had produced until then and saved it as seed data for a local MongoDB database runnable as a Docker container. That way, anyone can clone the project and launch the app locally to get a feel for what this project was all about.

As mentioned earlier, you can read the full story of this project here.

๐Ÿ”— Check out my other projects on my GitHub profile

pricebook's People

Contributors

vcheeney avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.