Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ruby group capstone - Catalog of my things #52

Merged
merged 90 commits into from
Oct 28, 2023
Merged

Ruby group capstone - Catalog of my things #52

merged 90 commits into from
Oct 28, 2023

Conversation

mershark
Copy link
Owner

@mershark mershark commented Oct 27, 2023

In this project @prg-04 @mershark @fatmahussein and @Mike47ip, we were able to accomplish the following tasks:

Group task

  • 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
  • We implemented the can_be_archived?() method in the Item class which returns true if published_date is older than 10 years, otherwise returns false.
  • move_to_archive() in the Item class
  • We implemented the move_to_archive() method in the Item class which reuses the can_be_archived?() method to change the archived property based on its return value.
  • Create a main.rb file that will serve as your console app entry-point.
  • Implement startup actions:
  • We presented the user with a list of options to perform, allowed them to choose an option and provided parameters if needed. We also implemented a way to quit the app.
  • Pull request title: Implemented Item class, methods and console app startup

Team member 1

  • 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.
  • Implement methods:
  • add_item method in the Label class
  • We implemented the add_item method in the Label class to add an Item instance to the label's items collection.
  • can_be_archived?() in the Book class
  • We overrode the can_be_archived?() method for the Book class to handle special logic around the cover state.
  • Add unit tests for all implemented methods.
  • The following options should be available:
  • We provided options to list all books, list all labels, and add a new 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:
  • We created schema.sql with tables for books and labels.
  • Pull request title: Implemented Book and Label classes and features

Team member 2

  • 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.
  • Implement methods:
  • add_item method in the Genre class
  • We implemented the add_item method in the Genre class to add an Item instance to the genre's items collection.
  • can_be_archived?() in the MusicAlbum class
  • We overrode the can_be_archived?() method for the MusicAlbum class to handle special logic around the on_spotify property.
  • Add unit tests for all implemented methods.
  • The following options should be available:
  • We provided options to list all music albums, list all genres, and add a new 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:
  • We created schema.sql with tables for music albums and genres.
  • Pull request title: Implemented MusicAlbum and Genre classes and features

Team member 3

  • 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.
  • Implement methods:
  • add_item method in the Author class
  • We implemented the add_item method in the Author class to add an Item instance to the author's items collection.
  • can_be_archived?() in the Game class
  • We overrode the can_be_archived?() method for the Game class to handle special logic around the last_played_at date.
  • Add unit tests for all implemented methods.
  • The following options should be available:
  • We provided options to list all games, list all authors, and add a new 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:
  • We created schema.sql with tables for games and authors.
  • Pull request title: Implemented Game and Author classes and features

Team member 4

  • Create Movie class in a separate .rb file.
  • Create Source class with an association to the Item class (in a separate .rb file).
  • All Movie class properties visible in the diagram should be defined and set up in the constructor method.
  • All Source class properties visible in the diagram should be defined and set up in the constructor method.
  • Implement methods:
  • add_item method in the Source class
  • We implemented the add_item method in the Source class to add an Item instance to the source's items collection.
  • can_be_archived?() in the Movie class
  • We overrode the can_be_archived?() method for the Movie class to handle special logic around the silent property.
  • Add unit tests for all implemented methods.
  • The following options should be available:
  • We provided options to list all movies, list all sources, and add a new movie.
  • 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:
  • We created schema.sql with tables for movies and sources.

Copy link

@binhussen binhussen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @mershark, @fatmahussein, @prg-04 and @Mike47ip

Good job so far!
There are some issues that you still need to work on to go to the next project but you are almost there!

Highlights

  • Added All Functionality ✔️
  • Well Structured Code✔️
  • Used Git flow ✔️

Required Changes ♻️

Check the comments under the review.

Optional suggestions

Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.

Cheers and Happy coding!👏👏👏

Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.


As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

README.md Outdated
## 🎥 Video Presentation <a name="Presentation"></a>

- [Video Link:](https://drive.google.com/file/d/1X8xE0Rpb4xXK7d5KF_2DAPOOHVQ02U-H/view?usp=sharing)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Great job for Presenting all functionality, I think it would be better if you record a maximum of 5 minute video presentation to fit the requirement 👍
2023-10-27_16-28

Copy link

@gemmen29 gemmen29 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Team,

Your project is complete! There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

Highlights 💯

  • No linters errors ✔️
  • Descriptive pull request ✔️
  • Descriptive commit messages ✔️

Optional suggestions

Cheers and Happy coding!👏👏👏

Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.


As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

@mershark mershark merged commit 04c8762 into main Oct 28, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants