Giter Club home page Giter Club logo

fullstop125 / catalog-of-my-things Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 85 KB

This is a console app that will help you to keep a record of different types of things we own: books, music albums, movies, and games.The data is stored in JSON files but we have also prepared a database with tables structure analogical to our program's class structure.

Home Page: https://github.com/fullstop125/catalog-of-my-things

License: MIT License

Ruby 100.00%
capstone-project database postgresql ruby tests workflow

catalog-of-my-things's Introduction

Catalog of my things

This is the final group project for Ruby to develop a console application implementing the Catalog of things displaying the list of books, musics, movies, and games. It is developed using Ruby.

Console App Screenshot

Built With

  • Ruby
  • IRB
  • VS Code

Live Demo

No live demo

Video presentation

Click here to see video presentation

Getting Started

Copy this link https://github.com/fullstop125/catalog-of-my-things.git. Get the directory that you want to clone the repository. Open the command prompt in this directory.

Setup

Clone repository

git clone https://github.com/fullstop125/catalog-of-my-things.git

Go to the repository folder in your command prompt

cd catalog-of-my-things

Install

Install Ruby using WSL

Install Ubuntu after system restart
Run the commands

bundle install

To run project

on the command prompt

ruby main.rb

To run tests for the application

on the command prompt

rspec

Authors

๐Ÿ‘ค Ahmad Zaki Yousufi

๐Ÿ‘ค Momanyi

๐Ÿ‘ค Juan Diaz

๐Ÿค 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.

catalog-of-my-things's People

Contributors

zakiyousufi avatar fullstop125 avatar juanmanuelbyc avatar

Stargazers

MIlen Alebel avatar  avatar

Watchers

 avatar  avatar

catalog-of-my-things's Issues

[3pt] Implement methods: TEAM 3

Implement methods: TEAM 3
add_item method in the Author 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 Game class
should override the method from the parent class
should return true if parent's method returns true AND if last_played_at is older than 2 years
otherwise, it should return false

[1pt] Implement methods: TEAM 2

Implement methods: TEAM 2
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

[1pt] 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. GROUP TASK

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. GROUP TASK

[3pt] The following options should be available: TEAM 1

The following options should be available: TEAM 1
List all books
List all labels (e.g. 'Gift', 'New')
Add a book
All data should be preserved by saving collections in .json files.
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

[1pt] Implement methods: GROUP TASK

Implement 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

[1pt] Implement startup actions: GROUP TASK

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.

[3pt] Implement methods: TEAM 1

Implement methods: TEAM 1
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

[3pt] The following options should be available: TEAM 3

The following options should be available: TEAM 3
List of games
List all authors (e.g. 'Stephen King')
Add a game
All data should be preserved by saving collections in .json files.
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

Set up Kanban board

Catalog of my things

In this project, we create a console app that will help you to keep a record of different types of things we own: books, music albums, movies, and games. Everything is based on the UML class diagram presented below. The data is stored in JSON files but we have also prepared a database with tables structure analogical to our program's class structure.

In this milestone @zakiyousufi, and @fullstop125 have added the Kanban board according to these requirements :

  • Has a descriptive title.
  • Has the number of points in the [Xpt] prefix. That number should indicate the number of points that show how complex the task is. 1 point = 1 hour of estimated work. You shouldn't change the points after dividing up cards, even if the actual work takes longer.
  • Has a description of the task.
  • Each of the team members should assign themselves to the cards as divided in the project requirements divided by team member (and time estimate distributions should be fair - no single person should be doing all of the most time-consuming tasks). Decide who will be the assignee for the cards marked as group tasks. All cards on your Kanban board should have assignees.

Find our Kanban board here
waiting for your feedback ๐Ÿ‘

[3pt] The following options should be available: TEAM 2

The following options should be available: TEAM 2
List all music albums
List all genres (e.g 'Comedy', 'Thriller')
Add a music album
All data should be preserved by saving collections in .json files.
Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:
music_albums table (add all properties and associations from the parent Item class as table columns)
genres table

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.