Issue Tracker App
Issue Tracker App is a content management system (CMS) that allows companies to organize and prioritize the completion of tasks throughout the organization. I created this web app because some companies are still using pen and paper for their field workers while using a complex CMS for their office workers. This is a simplified and inexpensive version that will allow more companies to have the power of a CMS.
A company executive can create an account for the company. Once they've added their company, they can invite other users who will have different permissions such as creating/editing issues, commenting on issues, and even inviting other users and editing their permissions.
- 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 create a simple and inexpensive CMS for companies to organize and prioritize the completion of tasks throughout the organization.|
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 would love to know:
- What is causing certain issues
- How often issues occur
- How much the issues costs
I need to see:
- Who is doing what
- When things are getting done
- Which locations have the most work
I need to track:
- What work has been done
- How much the work costs
- How often this work occurs
|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:
|Timeline||From April to May 2017 (2 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.
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 issues and users by certain attributes.
- I had trouble with Elastic Search requiring more RAM on the production server. Users can substitute with the issue filtering panel until searching on the site becomes more in demand.
- Added "Guest" user role. This user can only view issues and make comments on them.
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
- Add ability for admins to invite other users
- Add an autocomplete search bar in the header
- Add social login for Facebook and Google
- Test account locking and unlocking
- Add Location/Department/Job Title
- Save issues as favorites
- View issues the user marked as favorites
- Premium features
- Add ability to generate various reports such as the number of issues in a month, average time issues remain unresolved, who resolves the most issues, etc.
- Add ability to assign issues to users