Live Demo: https://idea-box-2-the-reckoning.herokuapp.com/
Ideabox is a site where users can save and keep track of their ideas. It is a single page Rails application that utilizes jQuery and AJAX to render new content without reloading the page.
This project was completed as part of the curriculum at the Turing School of Software & Design.
It was built with Ruby on Rails 5.0.0.1.
- Create a Rails application to manage data related to our ideas and serve initial UI templates
- Use JavaScript (with jQuery) to manage client-side interactions and communicate asynchronously with the server
- Get more experience doing DOM manipulations and AJAX event handling on our own, without using client-side frameworks
- Build an entire application with one HTML page or template, without separate pages for each CRUD action
You can find a live version of this application on Heroku at: https://idea-box-2-the-reckoning.herokuapp.com/
To set up a local copy of this project, perform the following:
- Clone the repository:
git clone https://github.com/Automatic365/idea-box-2.0
cd
into the project's directory- Run
bundle install
- Run
rake db:{create,migrate}
to set up the postgres database - Run the application in the dev environment by running
rails s
- Visit
http://localhost:3000/
A user can see all previously created ideas. Each idea has a title, body, and quality. Ideas are displayed in descending chronological order.
New ideas can be created by filling out the 'Submit a New Idea' form. Valid ideas will then appear on the page. Idea bodies that are longer than 100 characters will be truncated to the nearest word. New ideas have a default quality of 'swill'.
To delete an idea, simply click the delete button in the row of that idea in the table.
To edit an idea, click the text of either the idea body or title that you want to edit, and type in your changes. Changes are saved by clicking outside the table box or hitting 'enter'.
Users can change the quality of an idea by giving it an upvote or downvote. An idea quality can range from 'swill', 'plausible', to 'genius', in that order.
The test suite tests the application on multiple levels. To run all of the tests, run rspec
from the terminal in the main directory of the project. The feature tests (integration tests) rely mainly on the capybara gem for navigating the various application views.
This application depends on many ruby gems, all of which are found in the Gemfile
and can be installed by running bundle install
from the terminal in the main directory of the project.