Flash Card for Interview

Git Link to The Project: https://github.com/khadkd/teamdarkred

Team Reflection on Project

To design the layout of the page and design the flashcards, we decided to use bootstrap by installing bootstrap gem on ruby because bootstrap makes web designing easy to use, time saving and consistent. Bootstrap is an open source project, which has grid systems which was perfect fit for ideas and to create flash cards. Bootstrap was something new for some of us in the team, and learning it was one of the challenge. But after learning it and making use of parts of bootstrap we need, we realized it was easy to use and saved us tons of time.

Since the app we worked on required data to be already populated, we seeded the data using the gems “Faker” together with “Fabrication”. Seeding is the process of adding some data to the database to get the initial application up and running. Seed file in development environments usually consist of dummy data which populates tables so that we are able to test that the functionality works as intended. In our development environment, we had dummy data created using two gems, “Fabrication” (https://github.com/paulelliott/fabrication) and “Faker” (https://github.com/stympy/faker).

The amazing thing about these two plugins was that we were able to have our database populated with more than just one or two records which gave us the ability to see the full picture of how the application would behave. Faker gem allowed us to generate dummy data such as names, addresses, internet addresses, emails, etc. For example,

Faker::Name.name #would generate “Christophe Bartell”

Faker::Internet.email #would generate “kirsten.greenholt@corkeryfisher.info”

While the faker gem by itself was really powerful, we needed a factory gem to mass produce database records. This is where the Fabrication gem came in. We used Fabrication to create a factory for each type of objects in the database (each table) and in each factory, we coded it to use Faker to randomize the attributes of the objects. This way we were able to just say something like the following in our seeds.rb file:

50.times { Fabricate(:user) }

and it would create 50 users with random attributes in the database.

Other thoughts – Our initial plan was to create wireframes of our site so that we could get a get visual of how our app was going to look like. We initially started using moqups.com, but further investigation lead us to believe that there was a more efficient way to go about this. If we created the wireframes using balsamiq.com, technically we should have been able to convert the balsamiq XML file according to a blog published on balsamiq. Unfortunately for us, the site napkee.com had been acquired by domain registration company called gandi.net and the app napkee was no longer available. Although napkee was no longer available, apparently there were other apps that managed to accomplish something similar (ForeUI).

But since we had already wasted too much time with napkee, we decided to abandon this route. For making our development test and behavior driven we tried a combination of RSpec (behavior driven testing framework) with Capybara (web browser driver). Our seed data for the data base was having association relate issues, which kept the tests from running.

Majority of the time was sent on seeding the data right, so we couldn’t really do a lot of real deal TDD. For debugging the syntax issues we were having with some of the partial views we ended up using the gem Pry. This proved helpful and got a majority of our errors, which were taking up a lot of time to fix initially, taken care of.

Project Summary

Created a Flash Cards web application using Ruby on Rails MVC Framework for Software Engineering class. The principle of this class was to include project planning, requirements gathering, size and cost estimation, analysis, design, coding, testing, implementation, maintenance and team project. Users of this webpage could select interview categories and flash card would appear on the web page with a question. It could be flipped to find out the answer.

Tools Used: Cloud9, GitHub for Version Control, Heroku

Skills Used: Ruby on Rails, MVC Framework, Agile Development Cycle, HTML, CSS, Bootstrap, Cucumber, Selenium, Software as a Service (SaaS) Concept

Thank you Mizan Hemani and Aatir Manzur for making this team amazing.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s