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.
In your terminal, create a DB called 'bookshop' to store the date
Simply clone the directory and run the app.rb file in your Ruby interpreter.
- Sinatra Gem
- PG Gem
- Pry gem to run the seeds file (not strictly required; can add info in the project itself)
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.
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.
- 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.
eBay, Amazon (back end only), Magento
- 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.