Started from the Bottom Now We’re Here
FAQrator was the final project I developed at DevBootcamp, the coding bootcamp I completed in 2015. It started with Pitch Day, where members of my cohort pitched app ideas and then ranked the projects according to our interest in them. Thereafter, we are assigned to small teams; I was assigned to work with 2 others to create FAQrator, an app that enables users to create FAQ pages on the fly. I was interested in this particular project because I recognized its benefits for events, presentations, classes etc.
Process
We adopted the Agile methodology to work on this project. We started by writing out user stories (desired features for users) and ranking them in order of priority for a MVP (minimum viable product). We created task cards that we managed on Trello and worked according to individual tracks (i.e., I was responsible for the backend, views, and testing, Matt handled AJAX and jQuery, and Henry served as the Product Owner). Henry and I also worked together on the UI design to unify the overall style of the app (colors, sizes, and typography).
Following the scrum framework, my team communicated frequently and held twice-daily standups. And on graduation day, we presented the final product and answered questions about the project.
Features
Simplicity
An important goal was to create an app that was intuitive and quick to use. For example, a FAQ page can be generated as soon as you open FAQrator. Users do not need an account to create one and the ‘Create A Topic’ form is right on the home page. I also intentionally limited the input requirements of the form to keep it simple and kept the color scheme calm and harmonious.
Unique Links to FAQ Pages
Once a user creates a topic, they are provided with a custom link to their newly generated FAQ page. This allows them to share the link with participants so they can start adding questions to the page. Topic creators are also given an ‘edit URL’ to edit their FAQ pages and contribute answers. Once a topic created, a unique key (generated with SecureRandom) is stored as a cookie to ensure that only creators are authorized to edit their own FAQ pages. We used the ‘Friendly ID’ gem to generate user-friendly string URLs instead of URLs with a bunch of trailing numbers. We also incorporated the ‘Zero Clipboard’ gem to enable users to quickly copy links to their clipboard with the click of a button.
User Page
Once they’ve created an FAQrator account (authentication with the BCrypt gem), users can follow other users and can ‘star’ topics to subscribe to them. Followed topics then appear on their feed on their User Page. I used the tabs structure in the Materialize CSS framework to designate separate tabs for the feed, starred topics, and users followed.
Ranking of Questions
Once a FAQ page is generated, visitors to the page can upvote questions. As a result, the most helpful questions appear at the top of a FAQ page. We utilized the ‘Acts As Votable’ gem to facilitate this.
Custom Header Colors
We wanted to give users the ability to add some customization to their FAQ pages. Thus, users have the option of choosing a primary color for their topic page upon creation. This then becomes the primary header color of their FAQ page.