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

Build the "Catalog of my things" app #50

Merged
merged 118 commits into from
Dec 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
bedd9f2
initial setup of linters and Readme
George7h Dec 18, 2023
f98c605
Update README.md
George7h Dec 18, 2023
eaae5e0
Update README.md
Obimbo07 Dec 18, 2023
f776c8e
Update README.md
Obimbo07 Dec 18, 2023
a0f87b9
Update Gemfile
Obimbo07 Dec 18, 2023
219d639
Add Item class with attributes and initializer
George7h Dec 19, 2023
eb3c383
Implement methods archived
DevKaranJ Dec 19, 2023
c41656d
added source item class
DevKaranJ Dec 19, 2023
12ae01f
Update rubocop.yml
DevKaranJ Dec 19, 2023
0762df0
rubocop.yml rules updated
DevKaranJ Dec 19, 2023
1700c0b
Linters error fixed
DevKaranJ Dec 19, 2023
af30bfb
main.rb class
Obimbo07 Dec 19, 2023
8ba5a74
linters-fix
Obimbo07 Dec 19, 2023
9724e4a
rmv menu.rb
Obimbo07 Dec 19, 2023
d662c71
Fix linters
George7h Dec 19, 2023
5970283
Remove extra line
George7h Dec 19, 2023
c1110ab
Merge pull request #37 from George7h/item-management
George7h Dec 19, 2023
7ba105f
created game & author files
DevKaranJ Dec 19, 2023
a0e3cc6
Merge remote-tracking branch 'origin/dev' into task/create-game-autho…
DevKaranJ Dec 19, 2023
9393668
Add Label class with attributes and methods
George7h Dec 19, 2023
93aea12
Add Book class with publisher and cover state attributes
George7h Dec 19, 2023
98605bb
Merge pull request #39 from George7h/task/create-book-and-label-classes
George7h Dec 20, 2023
59efe64
Merge remote-tracking branch 'origin/dev' into task/create-game-autho…
DevKaranJ Dec 20, 2023
728ad0f
Update classes
DevKaranJ Dec 20, 2023
088ab73
Linters fixed
DevKaranJ Dec 20, 2023
710f63d
movie-source-class
Obimbo07 Dec 20, 2023
c7d68ba
update-source-class
Obimbo07 Dec 20, 2023
b32e515
Merge pull request #38 from George7h/task/create-game-author-classes
DevKaranJ Dec 20, 2023
e02898a
Implement add_item in Author and override can_be_archived? in Game
DevKaranJ Dec 20, 2023
ec9c68d
Update classes
DevKaranJ Dec 20, 2023
31329ac
linters-fix
Obimbo07 Dec 20, 2023
3ba3167
game unit test cases
DevKaranJ Dec 20, 2023
3dee6b2
linter-fix
Obimbo07 Dec 20, 2023
4501ece
Refactor Book class constructor and cover state comparison
George7h Dec 20, 2023
3c6cda8
Add book_spec.rb with tests for can_be_archived? and move_to_archive …
George7h Dec 20, 2023
1ff3921
Add label_spec.rb with test for adding an item to a label
George7h Dec 20, 2023
da4f110
Merge pull request #40 from George7h/task/create-movie-source-class
Obimbo07 Dec 20, 2023
9b293aa
author unit test case added
DevKaranJ Dec 20, 2023
e99756f
Merge pull request #42 from George7h/feature/book,label-methods-testing
George7h Dec 20, 2023
3bf9c76
item.rb file updated
DevKaranJ Dec 20, 2023
73dcf8b
Merge pull request #41 from George7h/feature/enhance-author-game-methods
DevKaranJ Dec 20, 2023
0a8da60
Add App class with methods for listing books and labels, and adding a…
George7h Dec 20, 2023
e5711ed
Refactor menu to use App instance
George7h Dec 20, 2023
c1f947b
Add label and author to add book method
George7h Dec 20, 2023
630491b
Remove movie class import until peer corrects it
George7h Dec 20, 2023
f4903fc
author.rb update
DevKaranJ Dec 20, 2023
4b30726
Updated Main.rb to display the game and author
DevKaranJ Dec 20, 2023
0300603
author.rb updated
DevKaranJ Dec 20, 2023
8b9d7af
add genre.rb
Fombi-Favour Dec 20, 2023
2376719
add musicalbum.rb
Fombi-Favour Dec 20, 2023
bb9fe38
Update game.rb to add games
DevKaranJ Dec 20, 2023
a40fcc6
display all the classes
DevKaranJ Dec 20, 2023
b22e140
Add choose_author method call to create a book
George7h Dec 20, 2023
4861121
Test case updated as per the code
DevKaranJ Dec 20, 2023
8b6a9a8
Linters fixed and updated
DevKaranJ Dec 20, 2023
84c561d
Update main.rb
DevKaranJ Dec 20, 2023
129c5a1
Linters updated
DevKaranJ Dec 20, 2023
a420ed3
Merge pull request #43 from George7h/feature/Implement-lists-books/la…
George7h Dec 20, 2023
cb242b7
Merge pull request #44 from George7h/features-create-music-label-class
Fombi-Favour Dec 20, 2023
71dc931
Merge branch 'dev' into game-author-operations
George7h Dec 20, 2023
c453652
methods-adding-listing-movies
Obimbo07 Dec 20, 2023
3b8a49b
remove empty line
George7h Dec 20, 2023
c8194cc
Merge branch 'dev' into feature/update-methods-and-options
Obimbo07 Dec 20, 2023
aafc923
fixed-conflicting-app.rb
Obimbo07 Dec 20, 2023
706c9c5
Merge pull request #45 from George7h/game-author-operations
DevKaranJ Dec 20, 2023
5d0ea32
updated-listing-books
Obimbo07 Dec 20, 2023
0e39df6
Merge branch 'dev' into feature/update-methods-and-options
Obimbo07 Dec 20, 2023
671ba90
fixed-conflict-and-linters
Obimbo07 Dec 20, 2023
0734a4c
Conflicts error fixed
DevKaranJ Dec 21, 2023
179aefb
insert schema for authors and games
DevKaranJ Dec 21, 2023
cc2f478
update schema
DevKaranJ Dec 21, 2023
5fa4065
Display author fixed
DevKaranJ Dec 21, 2023
68cc361
create test for genre
Fombi-Favour Dec 21, 2023
ba00542
create test for musicalbum
Fombi-Favour Dec 21, 2023
a8eae47
update genre_spec file
Fombi-Favour Dec 21, 2023
ba5b15a
update musicalbulm_spec file
Fombi-Favour Dec 21, 2023
acce2de
tests
Obimbo07 Dec 21, 2023
33cb1cf
Merge pull request #46 from George7h/feature/update-methods-and-options
Obimbo07 Dec 21, 2023
5445342
fixed-rspec-tests
Obimbo07 Dec 21, 2023
fd3e017
update genre.rb
Fombi-Favour Dec 21, 2023
cf7c908
update genre_spec file
Fombi-Favour Dec 21, 2023
77975da
Merge pull request #49 from George7h/feature/unit-tests
Obimbo07 Dec 21, 2023
57647fc
update genre.rb
Fombi-Favour Dec 21, 2023
e558405
update genre_spec file
Fombi-Favour Dec 21, 2023
9c927c1
Merge branch 'dev' into feature/json-file-io&sql-schema
George7h Dec 21, 2023
e11bea8
Fix linters
George7h Dec 21, 2023
a0e1712
Remove empty line in main.rb
George7h Dec 21, 2023
fef7c23
update genre.rb
Fombi-Favour Dec 22, 2023
d1a91e9
update genre_spec file
Fombi-Favour Dec 22, 2023
3ddd747
Merge pull request #48 from George7h/feature/json-file-io&sql-schema
DevKaranJ Dec 22, 2023
a28733e
Merge pull request #47 from George7h/test-music-genre-feature
George7h Dec 22, 2023
9b732da
Add Saveload class for data persistence and update data loading and s…
George7h Dec 22, 2023
3f36352
Add to_json method to Label class
George7h Dec 22, 2023
c66582f
Refactor Book class to include to_json method
George7h Dec 22, 2023
074abca
movie-source-storage
Obimbo07 Dec 22, 2023
8e9c8cd
source.rb
Obimbo07 Dec 22, 2023
e12419f
Updated files for author and games
DevKaranJ Dec 22, 2023
b66dd9f
Add to_json method to Item class
George7h Dec 22, 2023
c608abd
Update code formatting and fix bug in data validation
George7h Dec 22, 2023
ceadb50
Update test cases
DevKaranJ Dec 22, 2023
0d6808f
update genre file
Fombi-Favour Dec 22, 2023
8722310
update app file
Fombi-Favour Dec 22, 2023
1240c59
update musicalbum file
Fombi-Favour Dec 22, 2023
1742650
fix linters
George7h Dec 22, 2023
18ba4ad
Fix add on musical album
George7h Dec 22, 2023
5bc2714
Correcting tests and linters
George7h Dec 22, 2023
6d4e842
Fix linters
George7h Dec 22, 2023
1e9c5cd
Update schema.sql
George7h Dec 22, 2023
ef03dff
Insert image
George7h Dec 22, 2023
d4ae5c6
Remove comment line
George7h Dec 22, 2023
e02e54d
Remove unnecessary blank line in app.rb
George7h Dec 22, 2023
fdf978b
Remove welcome message from main.rb
George7h Dec 22, 2023
7831067
Update schema.sql
Fombi-Favour Dec 22, 2023
7d3c07d
movies-table
Obimbo07 Dec 22, 2023
3e83a70
presentation link
Obimbo07 Dec 22, 2023
a5dced8
readme-update
Obimbo07 Dec 22, 2023
305ba01
fixed-game-spec-path
Obimbo07 Dec 23, 2023
5c116e2
fixed-require-input
Obimbo07 Dec 23, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Linters

on: pull_request

jobs:
rubocop:
name: Rubocop
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v3
- uses: actions/setup-ruby@v1
with:
ruby-version: ">=3.1.x"
- name: Setup Rubocop
run: |
gem install --no-document rubocop -v '>= 1.0, < 2.0' # https://docs.rubocop.org/en/stable/installation/
[ -f .rubocop.yml ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/ruby/.rubocop.yml
- name: Rubocop Report
run: rubocop --color
19 changes: 19 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Tests

on: pull_request

jobs:
rspec:
name: RSpec
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-ruby@v1
with:
ruby-version: 3.1.x
- name: Setup RSpec
run: |
[ -f Gemfile ] && bundle
gem install --no-document rspec -v '>=3.0, < 4.0'
- name: RSpec Report
run: rspec --force-color --format documentation
71 changes: 71 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
AllCops:
NewCops: enable
Exclude:
- "Guardfile"
- "Rakefile"
- "node_modules/**/*"
DisplayCopNames: true

Layout/LineLength:
Max: 120
Metrics/MethodLength:
Max: 20
Metrics/AbcSize:
Max: 50
Metrics/ClassLength:
Max: 300
Metrics/BlockLength:
AllowedMethods: ['describe']
Max: 30
Metrics/ParameterLists:
Enabled: false
Metrics/PerceivedComplexity:
Max: 15

Style/Documentation:
Enabled: false
Style/ClassAndModuleChildren:
Enabled: false
Style/EachForSimpleLoop:
Enabled: false
Style/AndOr:
Enabled: false
Style/DefWithParentheses:
Enabled: false
Style/FrozenStringLiteralComment:
EnforcedStyle: never

Layout/HashAlignment:
EnforcedColonStyle: key
Layout/ExtraSpacing:
AllowForAlignment: false
Layout/MultilineMethodCallIndentation:
Enabled: true
EnforcedStyle: indented
Lint/RaiseException:
Enabled: false
Lint/StructNewOverride:
Enabled: false
Style/HashEachMethods:
Enabled: false
Style/HashTransformKeys:
Enabled: false
Style/HashTransformValues:
Enabled: false
Style/ClassVars:
Enabled: false
Style/KeywordParametersOrder:
Enabled: false

Metrics/CyclomaticComplexity:
Max: 15
IgnoredMethods:
- run_options

Layout/LineLength:
Max: 150
IgnoredPatterns:
- '\|\| Author.new\('

Metrics/MethodLength:
Enabled: false
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source 'https://rubygems.org'

gem 'rubocop', '>= 1.0', '< 2.0'
38 changes: 38 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
GEM
remote: https://rubygems.org/
specs:
ast (2.4.2)
json (2.7.1)
language_server-protocol (3.17.0.3)
parallel (1.24.0)
parser (3.2.2.4)
ast (~> 2.4.1)
racc
racc (1.7.3)
rainbow (3.1.1)
regexp_parser (2.8.3)
rexml (3.2.6)
rubocop (1.59.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.2.2.4)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.30.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.30.0)
parser (>= 3.2.1.0)
ruby-progressbar (1.13.0)
unicode-display_width (2.5.0)

PLATFORMS
x64-mingw-ucrt

DEPENDENCIES
rubocop (>= 1.0, < 2.0)

BUNDLED WITH
2.4.22
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023 George
Copyright (c) 2023 George & Karan & Favour

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Binary file added Logo.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
202 changes: 201 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,201 @@
# Catalog-of-my-things
<div align="center">

<img src="Logo.jpeg" alt="logo" width="140" height="auto" />
<br/>

<h3><b>Catalog of my things</b></h3>

</div>

<!-- TABLE OF CONTENTS -->

# 📗 Table of Contents

- [📗 Table of Contents](#-table-of-contents)
- [📖 Catalog of my things ](#-catalog-of-my-things-)
- [🛠 Built With ](#-built-with-)
- [Tech Stack ](#tech-stack-)
- [Key Features ](#key-features-)
- [🚀 Live Demo ](#-live-demo-)
- [🎥 Live Presentation ](#-live-presentation-)
- [💻 Getting Started ](#-getting-started-)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Install](#install)
- [Usage](#usage)
- [Run tests](#run-tests)
- [👥 Authors ](#-authors-)
- [🔭 Future Features ](#-future-features-)
- [🤝 Contributing ](#-contributing-)
- [⭐️ Show your support ](#️-show-your-support-)
- [🙏 Acknowledgments ](#-acknowledgments-)
- [📝 License ](#-license-)

<!-- PROJECT DESCRIPTION -->

# 📖 Catalog of my things <a name="about-project"></a>

**Catalog of my things** is a project that will implement a console app that will help keep a record of different types of things you own: books, music albums, movies, and games.The data will be stored in JSON files but will also prepare a database with tables structure analogical to the program's class structure.

## 🛠 Built With <a name="built-with"></a>

### Tech Stack <a name="tech-stack"></a>

- Ruby

<!-- Features -->

### Key Features <a name="key-features"></a>

- Present the user with a list of options to perform and to choose a option.
- List all books
- List all music albums
- List all movies
- List of games
- List all genres (e.g 'Comedy', 'Thriller')
- List all labels (e.g. 'Gift', 'New')
- List all authors (e.g. 'Stephen King')
- List all sources (e.g. 'From a friend', 'Online shop')
- Add a book
- Add a music album
- Add a movie
- Add a game
- All data should be preserved by saving collections in .json files.
- Add unit test for all implemented methods
- All data preserved by saving collections in .json files.
- Quit the app.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

## 🚀 Live Demo <a name="live-demo"></a>

- [Live Demo Link](Comming Soon!)

<p align="right">(<a href="#readme-top">back to top</a>)</p>


## 🎥 Live Presentation <a name="live-presentation"></a>

- [Presentation](https://drive.google.com/file/d/1ABEhMnYWMxh2e3631bI7XedAYCIsHYwf/view?usp=drive_link)

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- GETTING STARTED -->

## 💻 Getting Started <a name="getting-started"></a>

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

### Prerequisites

In order to run this project you need:

-VScode
-Installed Ruby

### Setup

Clone this repository to your desired folder:

```sh
git clone git@github.com:George7h/Catalog-of-my-things.git
```

### Install

Install this project with:

```sh
bundle install
```

### Usage

To run the project, execute the following command in your terminal:

```sh
ruby main.rb
```

### Run tests

To run tests, run the following command:

```sh
rspec ./spec
```
<p align="right">(<a href="#readme-top">back to top</a>)</p>

<!-- AUTHORS -->

## 👥 Authors <a name="author"></a>

👤 **Fombi Favour**

- GitHub: [Fombi-Favour](https://github.com/Fombi-Favour)
- Twitter: [@FavourFombi](https://twitter.com/FavourFombi)
- LinkedIn: [Fombi Favour](https://www.linkedin.com/in/fombi-favour/)

👤 **George Hamman**

- GitHub: [@githubhandle](https://github.com/George7h)
- LinkedIn: <a href="https://www.linkedin.com/in/george-hamman-95b98224b/">George Hamman</a>

👤 **Karan Joshi**

- GitHub: [@githubhandle](https://github.com/DevKaranJ)
- Twitter: [@twitterhandle](https://twitter.com/DevKaranJ)
- Linkdin: [@linkdinhandle](https://www.linkedin.com/in/devkaranj/)

👤 **Austin Obimbo**

- GitHub: [GitHub](https://github.com/Obimbo07/)
- WellFound: [WellFound](https://wellfound.com/u/austin-obimbo)
- LinkedIn: [Linkedin](https://www.linkedin.com/in/austin-obimbo-9a613623a/)

<p align="right">(<a href="#readme-top">back to top</a>)</p>

<!-- FUTURE FEATURES -->

## 🔭 Future Features <a name="future-features"></a>

- **Comming soon**


<p align="right">(<a href="#readme-top">back to top</a>)</p>

<!-- CONTRIBUTING -->

## 🤝 Contributing <a name="contributing"></a>

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/george7h/TDD-project/issues).

<p align="right">(<a href="#readme-top">back to top</a>)</p>

<!-- SUPPORT -->

## ⭐️ Show your support <a name="support"></a>

If you like this project you can share this project to your friend

<p align="right">(<a href="#readme-top">back to top</a>)</p>

<!-- ACKNOWLEDGEMENTS -->

## 🙏 Acknowledgments <a name="acknowledgements"></a>

I would like to thank microverse for this project

<p align="right">(<a href="#readme-top">back to top</a>)</p>

<!-- LICENSE -->

## 📝 License <a name="license"></a>

This project is licensed under the [MIT License](./LICENSE).

<p align="right">(<a href="#readme-top">back to top</a>)</p>
Loading
Loading