catalog-of-my-things's Introduction
catalog-of-my-things's People
catalog-of-my-things's Issues
[1pt] Create Unit Tests for Book and Label class
- Add unit tests for all implemented methods.
[1pt] Preserve Data For Book and Label Class
- 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
[2pt] Create Label Class
- Create a Label class with an association to the Item class (in a separate .rb file).
- All Label class properties visible in the diagram should be defined and set up in the constructor method.
- 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) - You should be able to list all labels
[2pt]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.
. 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 falsedded
[2pt] Create MusicAlbum Class
- Create MusicAlbum class in a separate .rb file.
- All MusicAlbum class properties visible in the diagram should be defined and set up in the constructor method.
- Implement methods:
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 - You should be able to list all music albums and add a music album
[1pt] Create Main File
- 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.
[1pt] Create Unit Tests for Genre and MusicAlbum class
- Add unit tests for all implemented methods.
[2pt] Create Author Class
- Create an Author class with an association to the Item class (in a separate .rb file).
- All Author class properties visible in the diagram should be defined and set up in the constructor method.
- Implement method:
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) - You should be able to list all authors (e.g. 'Stephen King')
[1pt] Create Unit Tests for Game and Author class
- Add unit tests for all implemented methods.
[2pt] Create Game Class
- Create a Game class in a separate .rb file.
- All Game class properties visible in the diagram should be defined and set up in the constructor method.
- Implement method:
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 - The following options should be available: List of games and Add a game
[1pt] Preserve Data for Game and Author class
- 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
Kanban board setup
There are 3 members in our team. @dodoburner has been assigned to Team Member 1 tasks, @nickemma for Team Member 2, and @Alfred-KInyua for Team Member 3. Here is the link to the project.
[1pt] Preserve Data for MusicAlbum and Genre Class
- 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
[2pt] Create Genre Class
- Create Genre class with an association to the Item class (in a separate .rb file).
- All Genre class properties visible in the diagram should be defined and set up in the constructor method.
- Implement 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) - You should be able to list all genres (e.g 'Comedy', 'Thriller')
[2pt] Create Book Class
- Create a Book class in a separate .rb file.
- All Book class properties visible in the diagram should be defined and set up in the constructor method.
- Implement methods:
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 - You should be able to list all books and add a book
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.