/Ruby-Bookshop-Inventory-WebApp

Building an app that allows the shopkeeper to keep a track of their inventory. In this case, a bookshop

Primary LanguageRuby

Bookshop App

Introduction:

Created for the week 5 solo project of Codeclan (Cohort E26), this program allows for the storing, editing and deleting of a series of books, as well as keeping track of wholesalers, genres and authors.

To Run:

Create appropriate db

In your terminal, create a DB called 'bookshop' to store the date

Run main file

Simply clone the directory and run the app.rb file in your Ruby interpreter.

Required:

  • Sinatra Gem
  • PG Gem

Recommended:

  • Pry gem to run the seeds file (not strictly required; can add info in the project itself)

Original Project Brief:

Rules

The project must be built using only:

  • HTML / CSS
  • Ruby
  • Sinatra
  • PostgreSQL and the PG gem

It must NOT use:

  • Any Object Relational Mapper (e.g. ActiveRecord)
  • JavaScript. At all. Don't even think about it.
  • Any pre-built CSS libraries, such as Bootstrap.
  • Authentication. Assume that the user already has secure access to the app.

Shop Inventory

Build an app which allows a shopkeeper to track their shop's inventory. This is not an app which the customer will see, it is an admin/management app for the shop workers.

MVP

  • The inventory should track individual products, including a name, description, stock quantity, buying cost, and selling price.
  • The inventory should track manufacturers, including a name and any other appropriate details.
  • The shop can sell anything you like, but you should be able to create, edit and delete manufacturers and products separately.
    • This might mean that it makes more sense for a car shop to track makes and models of cars. Or a bookstore might sell books by author, or by publisher, and not by manufacturer. You are free to name classes and tables as appropriate to your project.
  • Show an inventory page, listing all the details for all the products in stock in a single view.
  • As well as showing stock quantity as a number, the app should visually highlight "low stock" and "out of stock" items to the user.

Inspired by

eBay, Amazon (back end only), Magento

Possible Extensions

  • Calculate the markup on items in the store, and display it in the inventory
  • Filter the inventory list by manufacturer. For example, provide an option to view all books in stock by a certain author.
  • Categorise your items. Books might be categorised by genre (crime, horror, romance...) and cars might be categorised by type (SUV, coupĂ©, hatchback...). Provide an option to filter the inventory list by these categories.