Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mahammad-mostafa/grocery-budget

This is the capstone project of the fifth module in the Microverse program. It is a groceries budget app for managing grocery items for registered users built with Ruby on Rails & PostgreSQL.
https://github.com/mahammad-mostafa/grocery-budget

bullet cancancan capybara-rspec devise gitflow-workflow html-css microverse microverse-projects microverse-rails-capstone microverse-ruby microverse-students mvc-architecture object-oriented-programming postgresql responsive-layout rspec-rails rubocop ruby-on-rails stylelint unit-tests

Last synced: 1 day ago
JSON representation

This is the capstone project of the fifth module in the Microverse program. It is a groceries budget app for managing grocery items for registered users built with Ruby on Rails & PostgreSQL.

Awesome Lists containing this project

README

        

# 🏷️ Grocery Budget

This is the capstone project of the fifth module in the **Microverse** program.


Check the below contents for further details about this project.

# 📗 Contents

- [Description](#description)
- [Instructions](#instructions)
- [Authors](#authors)
- [Future](#future)
- [Contributions](#contributions)
- [Support](#support)
- [Acknowledgements](#acknowledgements)
- [License](#license)

# 📖 Description

This repository is about a budget management app for grocery items.
Porject is built using `Rails` framework with `Ruby`.
It is configured to use `PostgreSQL` database.
Integration tests using `Capybara` gem.
Authentication using `Devise` gem.
Authorization using `CanCanCan` gem.
Optimized queries with `bullet` gem.

📌 **Live Demo:**
- Check project live deployment [here](https://grocery-budget.onrender.com)
- Watch a presentation for the project from here [here](https://www.loom.com/share/e9970e8839a74245b7e7c09fde7b441a)

📌 **Tech Stack:**
- Programming language is `Ruby`
- Database used is `PostgreSQL`
- Framework used is `Rails`
- Tests done with `RSpec`

📌 **Key Features:**
- Responsive layout with all screen sizes
- Splash welcome page for new visitors
- User authentication is required first (`email` / `password`)
- Registeration requires (`name` / `email` / `password`)
- Navigation side menu with links (`Home` / `Account` / `Logout`)
- Only registered users can access pages
- Each group displays (`name` / `icon` / `total`)
- Every group can contain several grocery items
- Any grocery item can belong to multiple groups
- Each grocery item displays (`name` / `amount`)
- Users can create new groups and new grocery items
- Back navigation to the previous page

back to top

# 🛠️ Instructions

You can easily download or fork this repository and work on it immadiately!

📌 **Prerequisites:**
- You need `Ruby` language & `PostgreSQL` database installed

📌 **Installation:**
- To get all required gem dependencies run
```
bundle install
```
- Create all required databases with
```
rails db:create
```
- Create all table schemas with
```
rails db:migrate
```

📌 **Development:**
- Run live server using
```
rails server
```
- Manipulate & process models data through
```
rails console
```

📌 **Tests:**
- Run all tests with
```
bundle exec rspec -f d
```

back to top

# 👥 Authors

📌 **Mahammad:**
- [GitHub](https://github.com/mahammad-mostafa)
- [Twitter](https://twitter.com/mahammad_mostfa)
- [LinkedIn](https://linkedin.com/in/mahammad-mostafa)

back to top

# 🔭 Future

Some additional features I may implement in the project:
- [ ] Integrate `React` framework in frontend
- [ ] Implement (dark / light) theme switch

back to top

# 🤝🏻 Contributions

Wish to contribute to this project?


Contributions, issues, and feature requests are more than welcome!


Feel free to check the [issues](../../issues) page too.

back to top

# ⭐️ Support

Like this project? Show your support by starring!

back to top

# 🙏🏻 Acknowledgements

I thank everyone at **Microverse** for guiding me through this project.


Special thanks for [Gregoire Vella](https://www.behance.net/gregoirevella) who built the reference [design](https://www.behance.net/gallery/19759151/Snapscan-iOs-design-and-branding).

back to top

# 📝 License

This project is [MIT](LICENSE.md) licensed.

back to top