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.