Qwiz Notes is an open source social network for students to study. Users can sign up to add notes, automatically generate quizzes and share them with their peers. I created this site because I felt that most social networks are too distracting. People tend to lose focus for long periods of time while trying to accomplish simple tasks. I wanted to create a network that was focused, but also useful.
When a user saves a note in this app, the note is separated into term and defintion pairs. This allows the app to present the user with a nicely formatted review table. After the user reviews the note, they can take an automatically generated quiz. The automated quiz generator was designed to save students time and help them get the grades they deserve.
- To learn from my mistakes and develop a better workflow/process
- I learned the Ruby on Rails framework and I enjoy working with it
- I wanted an opportunity to use the Materialize CSS framework
Last updated: June 14, 2017
|Purpose||The purpose of this site is to facilitate focused group study so students can do well on tests and exams.|
NOTE: The following User Personas are based on interviews that were done in an informal matter. To protect the identity of the individuals, stock images were used to represent them.
I use apps that:
- My friends use
- Work on my phone and laptop
- Save me time
I'm completely focused on:
- A+ grades
I need to be able to:
- Work with my friends
- Test my knowledge
- Track my progress
|Main User Stories||
I like to build each feature as if it was going to be the last. This way, at any point during the development process, I can put the code on a live server with sample data and get user feedback (also known as Continuous Delivery). The following list should be developed in order of importance:
|Behavior Driven Development||
Behavior Driven Development (BDD) is the act of writing feature specifications as a test, then writing code to make the test pass. Click here for a brief intro to BDD. I often prefer to type some of the key feature specifications in advance using Cucumber's user story style. I write them in a separate file just to help keep me focused on the most important features for the users. An example of a user story would be:
Click here to view all the feature specs for this project.
|Timeline||From February to April 2017 (3 months). At this point, version 1 will be released and ready for public testing.|
Ruby on Rails
HAML & SASS
HTML5 & CSS3
JSON / AJAX
Behavior Driven Development (BDD)
I worked by following the scope outlined above. This way the most important features were developed and tested first. I continuously ran automated tests using Guard, Cucumber-Rails, and RSpec Rails. This helps shorten the feedback loop between writing the test and writing the code to pass the test. Take a look at the Gemfile for the list of project Gems.
I use GitHub Flow for the following reasons:
- It's simple
- I'm a one man team (at the moment)
- I added a "staging" branch to test the apps in an environment similar to production
The Review process involves the following steps:
- Browser/device testing
- Push to staging server
- Link testing
- Form testing
- User feedback
You can always change your plan, but only if you have one.
— Randy Pausch
It is great to have a plan, but it doesn't always go according to plan. Here are some of the change I made throughout the process:
- Added the ability to filter notes and users by certain attributes.
- I had trouble with Elastic Search requiring more RAM on the production server. Users can substitute with the note filtering panel until searching on the site becomes more in demand.
- Added the ability to favorite notes. I want users to feel some sense of reward for sharing high-quality notes.
- Added a list of recently viewed notes to make it easier for users and developers to go back to the previous note.
Ultimately there is no such thing as failure. There are lessons learned in different ways.
— Twyla Tharp
- The importance of planning
- Keep it simple first, iterate second
- Find feature alternatives when one feature might take too long to implement
- Cut scope if you are unable to reach the deadline
- Add an autocomplete search bar in the header
- Add social login for Facebook and Google
- Test account locking and unlocking
- Add social share buttons to each note view page
- View notes the user marked as favorites
- Premium features
- Paying users can create private notes