Giter Club home page Giter Club logo

my-things's Introduction

๐Ÿ“— Table of Contents

๐Ÿ“– My Things

My things is an app created using Ruby as a group capstone project. This app contains the options to add things like books, games, movies, music albums and keep their details safely within the database.

๐Ÿ›  Built With

Tech Stack

Client
Database

Key Features

Describe between 1-3 key features of the application.

  • Add Books, movies, games and music albums
  • Show the list of books, movies, games and music albums
  • Archive any item that is old

(back to top)

๐Ÿš€ Live Video

(back to top)

๐Ÿ’ป Getting Started

To get a local copy up and running, follow these steps.

Prerequisites

In order to run this project you need:

Ruby installed on your computer

Setup

Clone this repository to your desired folder:

Example commands:

  cd my-folder
  git clone [email protected]:sumon/my-things.git

Install

Install this project with:

No installation required

Usage

To run the project, execute the following command:

Example command:

  Open terminal in the folder directory and run "ruby main.rb"

Run tests

To run tests, run the following command:

Example command:

  rspec spec_name

(back to top)

๐Ÿ‘ฅ Authors

๐Ÿ‘ค Mursedul Islam Sumon

๐Ÿ‘ค Dieum Akonkwa

(back to top)

๐Ÿ”ญ Future Features

  • Front end for the website
  • Options to Edit and Delete
  • Options to share

(back to top)

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

(back to top)

โญ๏ธ Show your support

If you like this project please feel free to give us a star.

(back to top)

๐Ÿ™ Acknowledgments

I would like to thank microverse for providing us training and this capstone project to develop and learn alongside

(back to top)

(back to top)

๐Ÿ“ License

This project is MIT licensed.

(back to top)

my-things's People

Contributors

dieum512 avatar sumon766 avatar

Watchers

 avatar

Forkers

dieum512

my-things's Issues

Team member 1 [2.5pt] create a schema.sql file

  • 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

Team member 2 [1.75pt] Create a MusicAlbum class in a seperate .rb file

  • Create MusicAlbum class in a separate .rb file.
  • Create Genre class with an association to the Item class (in a separate .rb file).
  • All MusicAlbum class properties visible in the diagram should be defined and set up in the constructor method.
  • All Genre class properties visible in the diagram should be defined and set up in the constructor method.

Team member 2 [3pt] Implement the methods

  • add_item method in the Genre 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 MusicAlbum class
    should override the method from the parent class
    should return true if parent's method returns true AND if on_spotify equals true
    otherwise, it should return false

Team member 1 [3pt] Implement methods for the Game class

  • Create a Game class in a separate .rb file.
  • Create an Author class with an association to the Item class (in a separate .rb file).
  • All Game class properties visible in the diagram should be defined and set up in the constructor method.
  • All Author class properties visible in the diagram should be defined and set up in the constructor method.

Item class 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.

Team member 2 [2.5pt] Create a schema.sql file

  • 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

Team member 1 [1.75pt] create a Game class in a seperate .rb file

  • Create a Game class in a separate .rb file.
  • Create an Author class with an association to the Item class (in a separate .rb file).
  • All Game class properties visible in the diagram should be defined and set up in the constructor method.
  • All Author class properties visible in the diagram should be defined and set up in the constructor method.

Team member 2 [3pt] create a schema.sql file for Game

  • Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:
    games table (add all properties and associations from the parent Item class as table columns)
    authors table

Team member 1 [1pt] 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

Group Task [0.5] Create Item class

  • Create 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.
  • Add all methods visible in the diagram.

Group Tasks[0.5] Implement methods in item class

  • 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

Group Task [0.75] Create a main.rb file

  • 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.

Team member 1 [1.75pt] Create a book

  • Create a Book class in a separate .rb file.
  • Create a Label class with an association to the Item class (in a separate .rb file).
  • 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.