/sinatra-portfolio-project

This is a library catalog program built in Sinatra, a software web application library and domain-specific language written in Ruby. This was my second portfolio project submission in the Flatiron School curriculum

Primary LanguageRubyGNU General Public License v3.0GPL-3.0

Sinatra Portfolio Project

Overview

This program is an online library catalog for the Burd Antiquities Library. The catalog contains a lot of information about famous books & authors from the period of Late Antiquity up until the Renaissance era. This app enables a user to sign in and add books to the library.  A user can create, edit, and delete their own books, and see all of the other book entries created by other users.

Cool Graphics

Here is an illustration showing the object models and their relations:

About This Project

This project uses the Sinatra library, a microframework written in Ruby and used to quickly build web applications. This project was my portfolio project submittal for this project here in the Flatiron School Web Development curriculum.

Installation instructions

Clone this repo into your local environment and run the following commands:

  1. $ gem install bundler ... to install Bundler
  2. $ bundle install ... to install the Ruby Gems.
  3. $ shotgun ... to boot up your server

Next, copy the domain (displayed in the command prompt) and paste it into a web browser and you should see the homepage.

Project File Structure

├── ave_
├── Gemfile
├── Gemfile.lock
├── LICENSE.md
├── README.md
├── Rakefile
├── t.id
├── app
│   ├── controllers
│   │   ├── application_controller.rb
│   │   ├── authors_controller.rb
│   │   ├── books_controller.rb
│   │   ├── genres_controller.rb
│   │   ├── languages_controller.rb
│   │   ├── locations_controller.rb
│   │   ├── periods_controller.rb
│   │   └── users_controller.rb
│   ├── models
│   │   ├── concearns
│   │   │   ├── slugifiable.rb
│   │   │   └── unknown_author.rb
│   │   ├── author_location.rb
│   │   ├── author_period.rb
│   │   ├── author.rb
│   │   ├── book_genre.rb
│   │   ├── book_language.rb
│   │   ├── book.rb
│   │   ├── genre.rb
│   │   ├── language.rb
│   │   ├── location.rb
│   │   ├── period.rb
│   │   └── user.rb
│   └── views
│       ├──authors
│       │   ├── authors.erb
│       │   ├── create_author.erb
│       │   ├── edit_author.rb
│       │   └── show_author.rb
│       ├── books
│       │   ├── book.erb
│       │   ├── create_book.erb
│       │   ├── edit_book.rb
│       │   └── show_author.rb
│       ├── users
│       │   ├── create_user.erb
│       │   ├── login_error.erb
│       │   ├── login.rb
│       │   └── show.rb
│       ├── display_validation_failure.erb
│       ├── genres.erb
│       ├── index.erb
│       ├── languages.erb
│       ├── layout.erb
│       ├── library_layout.erb
│       ├── library.erb
│       ├── locations.erb
│       └── periods.erb
├── config
│   └── environment.rb
├── config.ru
└── db
    ├── development.sqlite
    ├── migrate
    │   ├── 20180126172118_create_authors.rb
    │   ├── 20180126172135_create_books.rb
    │   ├── 20180126172150_create_languages.rb
    │   ├── 20180126172215_create_book_languages.rb
    │   ├── 20180126172230_create_users.rb
    │   ├── 20180126172256_create_author_periods.rb
    │   ├── 20180126172437_create_genres.rb
    │   ├── 20180126172452_create_periods.rb
    │   ├── 20180126172511_create_locations.rb
    │   ├── 20180126172536_create_author_locations.rb
    │   └── 20180128042726_create_book_genres.rb
    ├── schema.rb
    └── seeds.rb

License Link

A link to the license for this code is available here per instructions on the spec.md file located here in the main directory of the GitHub repository.