Giter Club home page Giter Club logo

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

View Code? Open in Web Editor NEW
1.0 1.0 0.0 107 KB

In this project, we are creating a console app that will keep a record of different types of things : books, music albums, movies, and games. Everything will be based on the UML class diagram that was provided as requirements for the project. The data will be stored in JSON files but will also prepare a database with tables structure analogical to the program's class structure. "Catalog of my things" will be a simple console app that allows users to manage collections of the things they own.

Ruby 100.00%
rspec ruby

catalog-of-my-things's Introduction

Greetings, I'm Mayengbam Ranjit Luwang ๐Ÿ‘‹

I consider myself an understated yet dedicated developer with a flair for crafting seamless web, mobile, and blockchain solutions. My expertise quietly extends across both the mobile and blockchain domains, enabling me to create versatile digital experiences.

In my toolkit are HTML, CSS, JavaScript, Ruby, and the graceful React library, ideal for developing web and mobile applications. In the realm of blockchain, I navigate Solidity and harness the subtle power of development tools like Hardhat and Foundry to bring innovative ideas to life.

Beyond code, I'm an advocate of open-source collaboration and a firm believer in the transformative potential of shared knowledge. You'll find me actively contributing to open-source projects on GitHub, always eager to deepen my understanding and grow as a developer.

I am not only here to code but also to inspire and be inspired. My passion for technology and innovation often draws me to the vibrant world of startups. I'm driven by the desire to work with like-minded individuals who share a vision for disruptive solutions. If you're working on a groundbreaking project and need a versatile developer who understands the subtleties of technology, feel free to reach out via email. I'm eager to explore new opportunities and committed to exceeding your expectations.

Moreover, I'm here to guide subtly, offering insights on web and blockchain development, and to share startup inspiration with those who seek it. You can discreetly connect with me through my website, where you'll find more about my skills, experiences, and a glimpse of the exciting projects I've been a part of.

Let's connect and create the future together:

website ย ย  website ย ย  website

languages and tools:




Top Languages:

aboongm

My Github Stats:

aboongm

catalog-of-my-things's People

Contributors

aboongm avatar misheck12 avatar sainingo avatar tylher avatar

Stargazers

 avatar

Watchers

 avatar  avatar

catalog-of-my-things's Issues

[1pt] Implement methods (group)

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

[4pt] Create Musicalbum class and genre class

  • 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

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] Create schema for the classes

  • 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

[1pt] Create schema for the classes

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

movies table (add all properties and associations from the parent Item class as table columns)

sources table

[4pt] Create Game class and author 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.

Implement methods:

  • 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] Create Item class (group)

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

[4pt] Create book class and label class

  • 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

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] Create entry point (group) -1

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

[3pts] Add unit-test and preserve data

  • Add unit tests for all implemented methods.
  • The following options should be available:

List all movies
List all sources (e.g. 'From a friend', 'Online shop')
Add a movie

  • All data should be preserved by saving collections in .json files.

[4pt] Create movie class and source class

  • 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

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 Movie class

should override the method from the parent class
should return true if the parent's method returns true OR if silent equals true otherwise, it should return false

[3pts] Add unit-test and preserve data

  • Add unit tests for all implemented methods.
  • The following options should be available:

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.

[3pts] Add unit-test and preserve data

  • Add unit tests for all implemented methods.
  • The following options should be available:

List of games
List all authors (e.g. 'Stephen King')
Add a game

  • All data should be preserved by saving collections in .json files.

[1pt] Create schema for the classes

  • 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] Create schema for the classes

  • 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

[3pts] Add unit-test and preserve data

  • Add unit tests for all implemented methods.

  • The following options should be available:

    List all books
    List all labels (e.g. 'Gift', 'New')
    Add a book

  • All data should be preserved by saving collections in .json files.

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.