Git Product home page Git Product logo

fatima-hub333 / ruby_capstone_project Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 47 KB

A catalogue app in Ruby that stores information related to items that a user owns. The app uses rspec for testing and has a schema for the postgresql database that would be used to store the information.

Ruby 87.57% PLpgSQL 12.43%
databse github github-actions github-config linters query rspec ruby ruby-gem rubygems schema sql unit-testing workflow postgresql

ruby_capstone_project's Introduction

Catalogue of my Things

A catalogue app in Ruby that stores information related to items that a user owns. The app uses rspec for testing and has a schema for the postgresql database that would be used to store the information.

Built With

  • Major languages
  • Frameworks
  • Technologies used

Live Demo (if available)

Live Demo Link

Getting Started

gh repo clone marurevi/Ruby-capstone/
  • To get started, In the root directory run:
gem install bundler

Then run:

bundle install

Open terminal and run ruby app in the command Line:

bin/main

In case you want to run test, write the following command in your terminal:

bin/rspec

Authors

๐Ÿ‘ค Fatima Zahir

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a โญ๏ธ if you like this project!

Acknowledgments

  • Hat tip to anyone whose code was used
  • Inspiration
  • etc

๐Ÿ“ License

This project is MIT licensed.

ruby_capstone_project's People

Contributors

fatima-hub333 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

ruby_capstone_project's Issues

[2pts] Create SQL schema for books and labels

Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:

  • books table (add all properties and associations from the parent Item class as table columns)
  • labels table

[1] Group Task - Create Item Class

Create the item class in a separate .rb file.

All Item class properties visible in the diagram should be defined and set up in the constructor method. Exception: properties for the 1-to-many relationships should NOT be set in the constructor method. Instead, they should have a custom setter method created.

[1pt] Implement Item properties

All Item class properties visible in the diagram should be defined and set up in the constructor method. Exception: properties for the 1-to-many relationships should NOT be set in the constructor method. Instead, they should have a custom setter method created.

Set up of the repository

Setup project:

Modify README.md
Update MIT license
Make issues for the rest of the project and assign them

[3pt] Create main.rb with startup options

Create a main.rb file that will serve as your console app entry-point.
Implement startup actions:
Present the user with a list of options to perform.
Let users choose an option.
If needed, ask for parameters for the option.
Have a way to quit the app.

[3pts] Implement methods

Implement methods:
add_item method in the Label class
should take an instance of the Item class as an input
should add the input item to the collection of items
should add self as a property of the item object (by using the correct setter from the item object)
can_be_archived?() in the Book class
should override the method from the parent class
should return true if parent's method returns true OR if cover_state equals to "bad"
otherwise, it should return false

[1pt] Implement items methods

can_be_archived?() in the Item class

should return true if published_date is older than 10 years
otherwise, it should return false
move_to_archive() in the Item class

should reuse can_be_archived?() method
should change the archived property to true if the result of the can_be_archived?() method is true
should do nothing if the result of the can_be_archived?() method is false

[2pt] Define Book and Label properties

All Book class properties visible in the diagram should be defined and set up in the constructor method.
All Label class properties visible in the diagram should be defined and set up in the constructor method.

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.