{"id":17513514,"url":"https://github.com/lmaldonadoch/vacation-planner","last_synced_at":"2025-08-29T14:28:47.708Z","repository":{"id":39625875,"uuid":"284061561","full_name":"lmaldonadoch/vacation-planner","owner":"lmaldonadoch","description":"A Vacation Planner application with an admin control panel to add/edit/remove destinations for tourists to use while scheduling trips. Built with an RoR API backend and a React/Redux + Redux-Thunk front end.","archived":false,"fork":false,"pushed_at":"2023-01-19T20:17:17.000Z","size":5669,"stargazers_count":7,"open_issues_count":24,"forks_count":1,"subscribers_count":1,"default_branch":"development","last_synced_at":"2025-04-23T13:18:06.643Z","etag":null,"topics":["api","crud-application","react","reactjs","redux","redux-thunk","rest-api","ruby-on-rails","user-role-based-operations","user-roles-and-permissions"],"latest_commit_sha":null,"homepage":"https://vacation-planner-ror-react.herokuapp.com/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lmaldonadoch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-31T14:56:30.000Z","updated_at":"2022-03-19T16:17:22.000Z","dependencies_parsed_at":"2023-02-06T04:45:20.435Z","dependency_job_id":null,"html_url":"https://github.com/lmaldonadoch/vacation-planner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmaldonadoch%2Fvacation-planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmaldonadoch%2Fvacation-planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmaldonadoch%2Fvacation-planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmaldonadoch%2Fvacation-planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lmaldonadoch","download_url":"https://codeload.github.com/lmaldonadoch/vacation-planner/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250439295,"owners_count":21430824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","crud-application","react","reactjs","redux","redux-thunk","rest-api","ruby-on-rails","user-role-based-operations","user-roles-and-permissions"],"created_at":"2024-10-20T06:46:24.178Z","updated_at":"2025-04-23T13:18:14.210Z","avatar_url":"https://github.com/lmaldonadoch.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vacation Planner\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n\nVacation Planner is an app that allows you to schedule your vacations. You can browse through the supported countries and then select the destination you would like to visit. It also offers some interesting facts about each place and beautiful images for you to have a preview of what is waiting for you.\n\n![screenshot1](app/assets/images/screenshot02.png)\n\n![screenshot2](app/assets/images/screenshot04.png)\n\n![screenshot3](app/assets/images/screenshot06.png)\n\n\u003e This project includes an admin account to add new countries and cities! The limit is your imagination!\n\n![screenshot4](app/assets/images/screenshot07.png)\n\n\u003e On this project, I used a Full-Stack Ruby-on-Rails-React stack. I used Ruby on Rails API architecture with Fast JSON API for the serialization of information to get sent to the front end, and Bcript for user authentication and password encryption. I implemented the front end using React/Redux and React-Bootstrap. Redux handles the store that the application needs to share all across, and React Hooks the state of components that do not; this keeps the store clean and optimized.\n\n## Live Version\n\n[Vacation Planner](https://vacation-planner-ror-react.herokuapp.com/)\n\n## Built With\n\n- Ruby v2.6.5\n- Ruby on Rails v6.0.3.1\n- React 16.13.1\n- Redux 4.0.5\n- React-Redux\n- Bcrypt\n- Fast JSON API\n- Bootstrap 4\n- Fontawesome\n- SASS\n\n### Testing\n\n- Jest\n- RSpec\n- Capybara\n- Enzyme\n- Factory Bot\n- Faker\n\n## Getting Started\n\nTo get started with the app, cd to the directory where you would like the repo to live by typing on your terminal:\n\n```\n$ cd \u003cdirectory\u003e\n```\n\nClone the repo typing:\n\n```\n$ git clone git@github.com:lmaldonadoch/vacation-planner.git.git\n```\n\nInstall the needed gems:\n\n```\n$ bundle install\n```\n\nNow, set up the database. For a better user experience and to have access to the admin account, I recommend the use of the seed file. You can create the database and install the seed file with:\n\n```\n$ rails db:setup\n\n```\n\nIf you would like to start with a clean database instead, you can run:\n\n```\n$ rails db:migrate\n```\n\nFinally, start server:\n\n```\n$ rails server\n```\n\nOpen `http://localhost:3000/` in your browser.\n\n### Functionality:\n\nThe prebuilt database contains 3 accounts:\n\n- Admin\n  - email: admin@vacationplanner.com\n  - password: 123456\n- Luis\n  - email: luis@vacationplanner.com\n  - password: 123456\n- Carlos\n  - email: carlos@vacationplanner.com\n  - password: 123456\n\n6 Countries and 18 destinations.\n\nFrom the admin account you can create new cities and destinations. To do it, just log in using the admin account, and click on the \"Create a new Destination\" Tab on the left side navbar.\n\n### Prerequisites\n\nRuby: \u003e= 2.6.5\nRails: \u003e= 6.0.0\nPostgres: \u003e= 9.5\nNode: \u003e= 14.0\n\n## Run tests\n\n\u003e To run the tests, please make sure you are in the root directory of the project.\n\n### Server side testing:\n\n#### Controllers\n\n```\n  rspec spec/controllers/destinations_spec.rb\n\n  rspec spec/controllers/images_spec.rb\n\n  rspec spec/controllers/registrations_spec.rb\n\n  rspec spec/controllers/sessions_spec.rb\n\n  rspec spec/controllers/vacation_dates_spec.rb\n```\n\n#### Models\n\n```\n  rspec spec/models/destinations_spec.rb\n\n  rspec spec/models/images_spec.rb\n\n  rspec spec/models/users_spec.rb\n\n  rspec spec/models/vacation_dates_spec.rb\n```\n\n### Front-end React Components Testing\n\n```\nnpx jest\n```\n\n## Author\n\n👤 **Luis Angel Maldonado**\n\n- Github: [@lmaldonadoch](https://github.com/lmaldonadoch)\n- Twitter: [@LuisAngelMCh](https://twitter.com/LuisAngelMCh)\n- Linkedin: [LinkedIn](https://www.linkedin.com/in/lmaldonadoch)\n\n## Future Upgrades\n\n- Detail further mobile version\n- Add Delete/Edit functionality\n- Add flight tickets search functionality\n- Add tours search functionality\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\n\nFeel free to check the [issues page](https://github.com/lmaldonadoch/vacation-planner/issues).\n\n## Show your support\n\nGive a ⭐️ if you like this project!\n\n## Acknowledgments\n\n- Project requested by [Microverse Program](https://www.microverse.org/).\n- The project design and original idea are from [Murat Korkomaz](https://www.behance.net/muratk). Big cheers to him! You can find the complete project on [this Behance link](hhttps://www.behance.net/gallery/26425031/Vespa-Responsive-Redesign).\n- Most of the cities and countries descriptions were taken from [Trip Advisor](https://www.tripadvisor.com/).\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/lmaldonadoch/vacation-planner.svg?style=flat-square\n[contributors-url]: https://github.com/lmaldonadoch/vacation-planner/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/lmaldonadoch/vacation-planner.svg?style=flat-square\n[forks-url]: https://github.com/lmaldonadoch/vacation-planner/network/members\n[stars-shield]: https://img.shields.io/github/stars/lmaldonadoch/vacation-planner.svg?style=flat-square\n[stars-url]: https://github.com/lmaldonadoch/vacation-planner/stargazers\n[issues-shield]: https://img.shields.io/github/issues/lmaldonadoch/vacation-planner.svg?style=flat-square\n[issues-url]: https://github.com/lmaldonadoch/vacation-planner/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmaldonadoch%2Fvacation-planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flmaldonadoch%2Fvacation-planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmaldonadoch%2Fvacation-planner/lists"}