SlideShare a Scribd company logo
Page of1 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
FdSc CIT Level I Work-based Project 2013-14
Sam Giles
Introduction
inquestion is my work based project, its also one of the first projects I’ve
completed in Ruby on Rails, it has pushed my understanding of Rails and
I believe the final product is of a good quality - I’m Sam Giles, I’m a full
time developer at Ziontech Solutions Ltd, web development is both my
hobby and job and has been so for around 6 years.
I have extensive working experience with HTML, CSS, Javascript, VBScript, PHP and SQL, I’m
currently actively working in C# (ASP.Net), Ruby (Ruby on Rails) and Node.js - before this
project I’d pursued several smaller Ruby on Rails projects but nothing of this scale.
In terms of project management, I’m used to working in small teams (1-3), using source
control (Git), I usually approach projects from an all encompassing functional point of view,
running through scenarios, producing rough entity diagrams until I’ve come to a functional
implementation, implementing functionality as it makes sense in a almost vertical slice sense
(e.g. make the whole of the users part of the system work).
I track issues using Github personally, and at work we use Gitlab (Github clone), allowing me
to track issues, assign them to milestones and record progress towards fixing them, I often tag
issues to be able to turn the issue tracker into an organised work-list/todo-list.
Project documentation is usually kept to a minimal, anything that other developers may need
to know is written in the README file in the project root or maintained on the project Wiki at
Github/Gitlab.
The approach that I take to project management is one that works well for small teams, its
constantly being tweaked as development techniques change and technology progresses.
I’m doing the FdSc CIT as part of backing up my skills with evidence and background
knowledge of the underlying technology (TCP/IP, Routing, HCI, Programming) used on the web;
I’ve completed an Advanced Apprenticeship in IT Software Web & Telecoms Professionals and
have been attending the course part-time, I’ve been funded through the course by my
employer.
I routinely have meetings with clients and regard myself as confident when it comes to talking
about projects in both a technical and non-technical sense, I’ve developed skills with my time
in the Retail sector and at Ziontech that enable me to both gather information from a
customer with open questions and to sell them a solution, these skills have made
communication during the project very easily with my client.
My project stemmed from my Apprenticeship Assessor Rob and his need for a solution to
create a single point of communication for apprentice’s questions.

Page of2 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
My Client
Rob was a perfect choice for being my client, he taught me multiple Units on BND IT at Yeovil
College, was my Assessor on my Apprenticeship (one of the apprenticeships he heads at
Yeovil College), he’s gotten to know my strengths, weaknesses and is passionate about using
IT for innovative solutions, especially when they save him time!
Rob was highly available during every stage of the project, often he came in person to my
work to just catch up, other times he met me at UCY for discussions on developing features.
Having gone through the apprenticeship myself when Rob and I talked about possible projects
they didn’t stray too far from problems he and I encountered that could be solved through the
uses of my strengths in developing web applications.
One of Rob’s key problems and something that I can agree on as an ex-apprentice is that
knowledge relating to the Apprenticeship’s units is mainly accessible through either
conversation with an assessor or an email to an assessor in the form of questions about
specific Apprenticeship Unit Outcomes and topics.
After talking about what we could do in terms of how apprentices ask questions and
assessors respond Rob came to a conclusion, he asked for a solution to “promote a single
form of contact” as there is currently “no one consistent approach to apprentices
contacting us for support”.
The key objective we set out was that the application was to reduce the amount of time spent
answering IT Apprentice’s questions and increase the quality of answers, this can be
measured easily by looking at the user engagement, if users are using the site then it will be
achieving this key objective.
Page of3 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Rob Wood
Yeovil College
Higher Education and Work Based Learning Course Manager for
Computing
Page of4 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Key objective is to reduce
the amount of time spent
answering IT Apprentice’s
questions and increase
the quality of answers
Problems faced by the business
Currently Rob uses a system called OneFile, OneFile allows for Apprenticeship Assessors to
communicate with their apprentices, track their progress and issue targets - it allows
apprentices to ‘mail’ their assessor, this is then resent by OneFile as an email.
Apprentices routinely email their assessors directly outside of OneFile for support, and they
ask them questions in person when doing assessments and visits to workplaces.
Having these different contact methods is confusing for Assessors and Apprentices, it also
slows down the lead time on responses, OneFile messages are often filtered into a different
inbox due to the number of emails that OneFile as a system sends out, Assessors do this as to
not be bombarded by notifications from OneFile but at the same time it means they may be
filtering out genuine questions from assessors.
Having questions and answers inside OneFile in the form of messages directly between
Assessors and Apprentices makes the Question+Answer redundant data:
• Cannot be searched quickly by an assessor or apprentice
• The answer may be forgotten about should the question be asked again
• The same question could come in from different apprentices, the same answer will need to
be written out time and time again
With a solution in place that solves the issues of having to write up answers for each
apprentice and having to manage multiple communication methods time will be freed up, this
could have the upshot of providing a higher upwards limit on the number of apprentices that
can be taken on per staff member.

Page of5 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Currently a question is asked of a single
assessor, they write up the answer, then
send it back to the apprentice
Solutions
At Ziontech I have to come up with a variety of solutions to real business problems every day, I
tried to think of solutions that would not only solve Robs problem but would push my existing
skill set and use some of the knowledge I've gained on the course:
• Standalone Windows application to enable fast searching and recording of questions
+answers, would sit in task-bar
• Custom mail server that you can CC an answer email into that would record the emails it
receives with the students email as the question and the answer as the response for future
use by any assessor via a web interface
• Web Application to enable apprentices to ask questions and for assessors and/or other
apprentices to answer these questions
• Chrome Extension that extends OneFile by allowing Assessors to store most common
questions + answers and quickly copy+paste them
I decided that the Web Application would be the best solution, it would help create a highly
visible single point of contact, it would enforce a brand that would stick with Apprentices to
keep the solution in their mind when they go to ask questions and it added a massive variety
of benefits.
One of the key features the Web Application solution can provide is an easy to use interface to
every question and answer ever asked.
The solution can automatically attempt to answer the students question (should it have ever
been asked before in some form), enables fast searching of the data and enables students to
quickly get responses from their assessor and other students via the crowd-sourcing of the
answer with voting. A responsive design enables the solution to be accessible from any device,
helping to create the single point of contact required by my client.

Page of6 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Recorded, searchable data
Crowd Sourcing
Accessible from any device
Page of7 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
With my solution, a student asks a question, the
system searches for an answer and displays it to
the user.
If an answer cannot be found, then instead of just
the assessor being asked, a whole community of
users is asked.
Technical Demands
The site needed to be fast, cheap to run, and be easy accessible, most of all it had to promote
itself by being easy to use to encourage students to ask questions via it.
I had already marked Ruby on Rails as being the framework I’d build the site with, its
something I’d been playing with on several smaller projects and it suits rapid development
with an emphasis on doing things the right way - Rails has a huge active community, this adds
a great deal of resources such as open-source projects, I’ve used jQuery, Less.js, chartkick,
best_in_place, Normalize.css and Devise, this massively sped up the development of the site,
without these libraries and frameworks I wouldn’t have been able to arrive at such a feature
rich product.
Responsive Design
I employed the use of responsive design to help make inquestion accessible
from different devices such as Mobile Phones and Tablets - often Assessors
travel light and only carry and iPad or a Android Phone, it was important for
me to be able to allow them to still respond to students questions.
Responsive Design is a term that defines the use of a design that responds to
the device its currently being viewed on - CSS (The stylesheets used to style the
site) has a feature called Media Queries, Media Queries allow you to target a
set of styles for a particular set of device statistics, such as screen size.
Scalable
inquestions initial budget is low, meaning the server specifications are fairly
low, some of the operations that inquestion does (automatic question solving,
question searching, etc) are complicated, I had to bear performance in mind
every step of the way, using code analysis tools to check the quality of my code
and using New Relic (server monitoring tool) to monitor the performance of
sections of code (even individual database queries).
inquestion is built on Rails 4, Rails 4 supports true multithreading and can be
efficiently scaled by adding more Rails workers, I’m using an application server
called Phusion Passenger, Phusion Passenger makes it very easy to scale up
sites by just tuning the number of ‘workers’ that can be spawned, should
inquestion get very popular in the future we just need to up the servers RAM
and then add more workers.
Searchable
The site needed to make it very easy to lookup existing questions+answers, it
does this in two ways, first by utilising full text search across multiple columns
(a questions tags, title and content) to provide quick access to searching from
the questions page, and secondly by automatically attempting to lookup
possible answers to your question as you begin to type one - this all helps to
make inquestion easy to use which in turn helps promote it being a single
point of contact for apprentices.

Page of8 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Approach
We were shown some PRINCE2 documentation, unfortunately I’m not a wizard, for this
reason, and based on my working experience in the sector I approached the project with a
much simpler set of documents and method of working.
• Using a product checklist to outline the different sections of the project
• Using Git for both planning via milestones, source control in place of a daily log and to track
the issues (with their effects, progress, etc)
• Record lessons
• Build in logging from the start via code and server + client side analysis with New Relic,
making proving that people are using the site easy
To start the project I produced a ‘Project Initiation Document’, this had to be approved by my
client. The project initiation document consisted of the following:
• A business case, this document outlined what the problems in the business are and why the
project is needed
• Project Product Description, this document outlined each product I would produce in the
project, it describes the quality expectations, skills required and the acceptance criteria.
• Communication Management Strategy, this document shows the communication I should
provide my client, how, how often and how detailed
• Project Plan, shows how the project will be split up and the timescales for individual parts
• Benefits Review Plan, describes how the project will be reviewed to determine if the initial
benefits have been realised, including who is accountable, the resources I will use to prove
benefits have been achieved and details of how I will use the resources
• Quality Management Strategy, determines how the quality of the project will be reviewed
and the standards that it should be compared to
• Risk Management Strategy, gives an overview of the risks that I perceive may appear, and
how I will manage them and other risks that may emerge during the project.
• Daily log, though I gave up doing the this the traditional way as the way I was working (git)
meant I was effectively writing a semantic log of each and every change to the project
leading to a accurate log that can be used as real data to produce productivity graphs, track
the rate that issues cropped up, track the rate at which I fixed issues and see my overall
productivity
I produced an issues register as I went using git, I’ve extracted this data for the sake of this
report though it can be viewed online - I kept the lessons log, risk register and quality register
up to date as I went, though they didn’t fit smoothly into my workflow so they aren’t quite as
regular or semantic.

Page of9 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Managing the Project
I relied on github for a great deal of the management side of the project, it handled my daily
log and issues register, it really gives an interesting insight into the development of the
project.
The graph above shows commits over time, you can clearly see the initial research I did into
the foundation (Rails) and the gems I would be using (Devise, Chartkick etc), this graph is
possible because of the fact changes I made were being tracked using git.
Above you can see the commits interface on github showing a selection of commits to
inquestion, clearly you can see that I was stringent about making sure I made each commit
about a specific feature, much of the development was done in a vertical slice style, with a
whole feature being fully developed, you can see this in the log.
Page of10 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
I tracked all my issues using the Github Issues feature, its a fantastic feature as you can tag
issues and separate them into milestones, effectively allowing you to create an information
rich to-do list with notes attached to each to-do, deadlines, tags, all useful information that
allowed me to make sense of what needed to be done and when.
Github Issues ‘Milestones’ are a great feature that really helped me out by allowing me to see
what needed to be done within each stage, this replaced my plan.
By planning my project out using milestones and tagged issues I was able to prioritise, plan
and make decisions all within one easy to use, easy to navigate interface, avoiding a laborious
task of updating Excel spreadsheets and attempting to record progress and making the
system work for me.


Page of11 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Communication
Rob and I sat down before the start of the project and initially specced out some ideas for
what I could tackle, then we moved onto the subject of relieving the workload of answering
the same questions again and again of apprentices.
I invited Rob to the office and we sat down with a pen and paper, I made him talk me through
what he wants, how he envisaged it working and then reeled off some ideas for features and
tweaks that could benefit the project.
With a notepad full of scribblings from the meeting with Rob I set out to create the Project
Initiation Document, in my opinion it didn’t really need to be sent to my client as we’d already
had a formal discussion on what they wanted, how it will be made shouldn’t be something
they have to worry about but alas my client had to give the go ahead.
Communication after this initial
document was in the form of brief
chats when Rob popped into the
office and via Email and Messenger
- Rob was very quick to reply due to
the convenient communication
methods, this massively helped out
as I was able to quickly bounce
questions and gain feedback on the
latest changes.

Page of12 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Delivering Requirements
Right from the start of the project Rob and I talked about how it would be challenging to prove
the benefits of this project, after some thinking we arrived at the conclusion that it wouldn’t
be very complicated to pull out data on the usage of the site that would help to backup my
clients own conclusion on how successful the project has been.
Whilst building the admin section of inquestion I paid a great deal of thought to the data that
would be needed to prove my benefits, to prove that people were using the site, that
questions were being asked via the site and that answers were being submitted.
Several graphs are present in the admin section, they help staff to see the health of site and
help prove to the client that the site is achieving its benefits.
My acceptance criteria stated the following:
• Product must look professional
• Assessors should be able to easily point apprentices at existing questions that have been
answered
Page of13 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
• Users should be able to browse questions by tags
• Users having received answers for a question should be able to mark one as the most
helpful
• Apprentices should be able to answer other apprentices questions
“Product must look Professional”
The site has a simple look and feel that works well across all devices, the
branding is basic and I believe will be quite recognisable by apprentices.
The design is uncluttered, puts emphasis on actions and provides an easy to
use interface to the massive amount of data that the site contains.
“Assessors should be able to easily point
apprentices at existing questions that have been answered”
The site uses friendly URLs, friendly URLs both enhance the search engine visibility of the site
and make URLs convey the page that your going to arrive at.
Traditional URLs for data driven sites often look like http://inquestion.co.uk/questions?id=53,
this tells you nothing about the question the link is about, the URLs in inquestion follow a
form that includes the title in the URL, e.g. http://inquestion.co.uk/questions/whatisprince2,
this URL clearly conveys that the page is a question about “What is PRINCE2?”.
I believe the use of friendly URLs will make it easy for assessors to provide links to questions
for apprentices, and the use of tagging means assessors can link a user a whole collection of
questions about a topic for reference, e.g. http://inquestion.co.uk/tags/prince2.
“Users should be able to browse questions by tags”
The site allows users to easily browse by tag, they can click any tag on the site to go to a tag
specific page that shows every question in the tag with sorting options to sort by popular
questions, the date they were last updated and the top voted questions.
“Users having received answers for a question should be
able to mark one as the most helpful”
Users can mark an answer as the ‘accepted answer’, when they do this not only do they make
it easier for users to see the accepted answer (its highlighted in green) but they make the site
smarter as these ‘answered’ questions are used to help automatically match a users question
Page of14 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
to an answer as they are asking it, this should help to automatically remove duplicate
questions/answers.
“Apprentices should be able to answer other apprentices
questions”
Anyone can sign up to the site, from here Assessment staff can determine whether they are
apprentices, if they are apprentices then they are placed under their relevant Assessor and
Coordinator, else they are left (outside users can still add value to the site, such as employers
and other teaching staff at the college). Any logged in user can answer questions, vote up
questions and answers and submit questions.
I’ve delivered all my requirements, and my client is very happy with the outcome of the project
and cannot wait to start using it in the wild.
I haven’t been able to gather enough information about the application in the wild to be able
to 100% prove its achieved its goals, but the reports available in the admin will prove my
benefits have been realised fully.

Page of15 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Page of16 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Daily Log
I’ve extracted my git commit data into a tsv and formatted it into a table below, its in a great
deal of detail, enjoy!

Commit Ref Author Date/Time Message
946d277 Samuel Giles Fri Mar 21 09:52:26 2014 Added mail_view gem to preview email templates on dev
6aaaf8a Samuel Giles Fri Mar 21 09:52:04 2014 Email is functional on dev + Closes #10 with introduce email
function
3b83942 Samuel Giles Fri Mar 14 00:05:23 2014 Question vote button now on show page
ce44731 Samuel Giles Fri Mar 14 00:01:52 2014 Caching implemented for questions partial closes #26
e325174 Samuel Giles Thu Mar 13 23:45:22 2014 My Questions + My Answers pages are in - closes #4 and #5
f4b7e6c Samuel Giles Thu Mar 13 22:08:37 2014 Increase tag paginate size
3322621 Samuel Giles Thu Mar 13 22:08:23 2014 Fixed a bug with tagging not working unless you used a #
85a7293 Samuel Giles Thu Mar 13 22:07:22 2014 Implemented question search : closes #15
ee83ce9 Samuel Giles Wed Mar 12 21:35:00 2014 Fixed error for users not logged in on question show
3bb929b Samuel Giles Wed Mar 12 21:34:44 2014 Made answers, question tags, votes dependant on question to
prevent errors
c7359e9 Samuel Giles Wed Mar 12 21:19:39 2014 Added full text index to answers
ca5be07 Samuel Giles Wed Mar 12 21:06:56 2014 Added full text index to questions table
10a8279 Samuel Giles Mon Mar 10 22:48:07 2014 Notifications now work(ish) with responsive layout
58790b3 Samuel Giles Mon Mar 10 22:24:08 2014 Forgot to add users{ questions + answers } paths
d7c141d Samuel Giles Mon Mar 10 21:38:13 2014 Made questions show use user.full_name
7a3e5de Samuel Giles Mon Mar 10 21:37:58 2014 Added placeholder my questions + my answers pages
4e3d08d Samuel Giles Mon Mar 10 20:43:58 2014 Added question destroy function to admin on question #show +
Modified :notice to flash[:notice] to remove notices from query
strings
72ca0ac Samuel Giles Mon Mar 10 20:03:56 2014 Removed focus styles from selectize less
baed75b Samuel Giles Mon Mar 10 20:03:42 2014 Increased time before search to make the answer finder a little less
annoying
6db61b5 Samuel Giles Mon Mar 10 20:02:06 2014 Added focus for selectize input
b89d583 Samuel Giles Mon Mar 10 20:01:48 2014 Removed before_save and overwrote attribute writer for tag title to
do lowercase and remove hash
8da34a3 Samuel Giles Mon Mar 10 19:28:47 2014 Modified friendly_id reserved words to block out more possibilities
3d8729d Samuel Giles Mon Mar 10 19:28:19 2014 Changed text referencing libraries on about page
ff8b81a Samuel Giles Mon Mar 10 19:27:12 2014 Added supporting tag lookup with trigram searching for tag input
boxes
d8ef3f9 Samuel Giles Mon Mar 10 19:26:37 2014 Added tag-select class to tag input boxes
Page of17 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
1ac63fc Samuel Giles Mon Mar 10 19:25:36 2014 Fixing up selectize styling to fit with inquestion style
ce12217 Samuel Giles Mon Mar 10 18:54:08 2014 Tag select code to init selectize added to application.js
ff4dd3c Samuel Giles Mon Mar 10 18:53:49 2014 Restored normal tab functionality in selectize
f8cb8f6 Samuel Giles Mon Mar 10 18:36:56 2014 Modified selectize to make it input the current selected item when
you press tab or space
7d797ec Samuel Giles Sun Mar 9 21:31:25 2014 Added media element to hook into breakpoint changes via JS
e2c37f4 Samuel Giles Sun Mar 9 21:30:50 2014 Made mobile menu support changing from closed to desktop
446701 Samuel Giles Sun Mar 9 21:22:36 2014 Making sure all tags are created lowercase
944a473 Samuel Giles Sun Mar 9 21:22:07 2014 Added basic mobile menu + Removed horrible  's
6f52ed9 Samuel Giles Fri Mar 7 13:03:07 2014 Now using full text searching instead of trigram with an english
dictionary and support for partial words
82b962d Samuel Giles Thu Mar 6 22:42:42 2014 No longer receive notification about answering your own question -
references #45
020a5fb Samuel Giles Thu Mar 6 22:40:11 2014 Reduced notification tick back to 5 seconds
2e98bfe Samuel Giles Thu Mar 6 22:25:53 2014 Tags on question #show now link to tag page
39eb3da Samuel Giles Thu Mar 6 22:23:59 2014 "asked around 5 days" should be "asked around 5 days ago" on
questions index
61fb94d Samuel Giles Thu Mar 6 22:20:23 2014 Discovered in #49 - "There are 1 question" should be "There is 1
question"
b957cbf Samuel Giles Thu Mar 6 22:08:33 2014 Updated content of question and answer to be text fields with nil
limit instead of varying with 255 limit
e7c7239 Samuel Giles Thu Mar 6 22:00:34 2014 Fixed error caused by no questions
2ba5a72 Samuel Giles Thu Mar 6 21:59:09 2014 Fixed errors caused by 0 questions in a tag
e5ce350 Samuel Giles Thu Mar 6 21:12:02 2014 Ensuring users are signed in for Question vote
98b50c0 Samuel Giles Thu Mar 6 21:09:57 2014 Wasn't using try on current_user, meant errors for logged out users
navigating site
17f96b5 Samuel Giles Thu Mar 6 20:57:46 2014 Set mail_sender in devise initialisers
6f94b6b Samuel Giles Thu Mar 6 20:53:24 2014 Needed to add default_url_options :host to production
11fc636 Samuel Giles Thu Mar 6 20:46:50 2014 Using sendmail for the moment
05b6629 Samuel Giles Thu Mar 6 20:43:17 2014 Terms and Conditions + Privacy filled with some fairly generic stuff
48a85ba Samuel Giles Thu Mar 6 20:19:18 2014 New error pages - closes #28
46c1871 Samuel Giles Thu Mar 6 14:20:11 2014 Corrected wrong kind of pluralise being used on tag page
1a4206d Samuel Giles Thu Mar 6 14:19:33 2014 Made question index show live data
a0c7daa Samuel Giles Thu Mar 6 02:18:25 2014 Updated thresholds for trigram searching
54ecdda Samuel Giles Thu Mar 6 02:09:29 2014 I should go to bed
db99670 Samuel Giles Thu Mar 6 02:06:35 2014 JS Wasn't pulling out possible questions correctly
Commit Ref Author Date/Time Message
Page of18 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
564566a Samuel Giles Thu Mar 6 01:23:11 2014 Changed to schema_format :sql + Added fuzzy search install
migration
f2b42d6 Samuel Giles Thu Mar 6 01:17:20 2014 Fixed issues with pg_search implementation
f8a51cf Samuel Giles Thu Mar 6 01:03:06 2014 Modified solver to user pg_search
779ef98 Samuel Giles Thu Mar 6 00:37:17 2014 Changed to pg_search
5829d1d Samuel Giles Wed Mar 5 23:41:49 2014 Missed textacular gem
854272b Samuel Giles Wed Mar 5 19:18:48 2014 Made solver a post to facilitate long queries
accba50 Samuel Giles Wed Mar 5 19:15:35 2014 Added question auto solving - its a bit rough atm but it works
1d82baa Samuel Giles Tue Mar 4 23:28:59 2014 Tweaks to styling + Added accept prompt styling + Added accepted
answer styling
fb48367 Samuel Giles Tue Mar 4 23:28:11 2014 "Asked by you" on question show + Prompt to mark an accepted
answer
d3610f5 Samuel Giles Tue Mar 4 23:27:29 2014 Added time ago to question overview
bf79fc4 Samuel Giles Tue Mar 4 23:27:14 2014 Fixed user signup page not working + Added new user welcome
page
fde3dd8 Samuel Giles Tue Mar 4 23:26:09 2014 Added ability to accept answer
4b71b76 Samuel Giles Mon Mar 3 23:46:06 2014 Took question overview out into its own partial + Took answers out
into partial
3e82dc5 Samuel Giles Mon Mar 3 23:44:48 2014 Added vote method to answers controller + Adjusted answer +
answer_vote models to work with voting
0e0d733 Samuel Giles Mon Mar 3 23:43:26 2014 Removed extra console.log in voting JS + Added missing init call in
admin JS
42669d3 Samuel Giles Fri Feb 28 13:09:03 2014 Added voting (still fixing it around site, need to modify question
view to be a partial)
3e5311a Samuel Giles Wed Feb 26 18:17:14 2014 Added author tag to inquestion about page pointing at myself
de71f45 Samuel Giles Wed Feb 26 08:36:17 2014 Tag_list wasn't being set for admin created questions
f0295ee Samuel Giles Wed Feb 26 08:01:59 2014 Updated to Rails 4.0.3
18aeb85 Samuel Giles Wed Feb 26 00:46:32 2014 Changed tracking code + Google site verify
379cd68 Samuel Giles Wed Feb 26 00:35:42 2014 Added Google Analytics
66a5fbb Samuel Giles Wed Feb 26 00:27:43 2014 Added <title> tag to questions + Added meta description and
keywords
c98a364 Samuel Giles Wed Feb 26 00:12:40 2014 Fixed a grammar issue when only 1 question exists in a tag
70e0698 Samuel Giles Tue Feb 25 23:57:55 2014 Adjusted limits on questions index
88a20b7 Samuel Giles Tue Feb 25 23:56:22 2014 Implemented tag #show + Tweaks to model lambdas + Misc fixes
ae6923a Samuel Giles Tue Feb 25 23:54:38 2014 Added will_paginate and humanize gem
65717b1 Samuel Giles Tue Feb 25 15:06:23 2014 Changed tabbing on application.less + Added styles to support sort
menu + Added JS to support sort menu
2f653b6 Samuel Giles Tue Feb 25 15:04:01 2014 Corrected spelling mistake on "Ban Iser"
Commit Ref Author Date/Time Message
Page of19 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
1df45dd Samuel Giles Tue Feb 25 15:03:25 2014 Questions index now supports filtering between popular, recently
answered and new questions
6d780c1 Samuel Giles Tue Feb 25 14:56:15 2014 Added needed reserved words to friendly_id
69ca9c9 Samuel Giles Tue Feb 25 14:54:14 2014 Changed "Answer Questions" to "View Questions" in header
849beb4 Samuel Giles Tue Feb 25 14:53:58 2014 Implemented friendly URLs for tags and questions
b233744 Samuel Giles Tue Feb 25 10:14:31 2014 Missing belongs_to on answervote
ceb58b2 Samuel Giles Tue Feb 25 10:14:07 2014 Added popular question scope + Fixed some issues with
notifications on new question
866e935 Samuel Giles Tue Feb 25 00:25:52 2014 Added xml.gz mimetype
6f81ce2 Samuel Giles Tue Feb 25 00:05:34 2014 Created sitemap closes #44
3bc0e9b Samuel Giles Mon Feb 24 23:32:49 2014 Made sensitive areas of profile page invisible to other user unless
correct permissions
5f8e9ee Samuel Giles Tue Feb 18 22:48:09 2014 Make all tags lowercase
f8541d7 Samuel Giles Tue Feb 18 22:40:32 2014 Now sends notifications to users subscribed to the tags that a
question is posted with - fixes #38 + Fixed issues with the way
notifytags were implemented
c2c8293 Samuel Giles Tue Feb 18 21:30:47 2014 Modified about to mention chartkick and best_in_place and
PostgreSQL
7dd8007 Samuel Giles Tue Feb 18 21:29:58 2014 Extra small button size + Users can now remove knowledge
fa7469c Samuel Giles Tue Feb 18 20:46:49 2014 Added admin functions to user profile page to transform user into
Standard, Assessor and Coordinator
41dd353 Samuel Giles Tue Feb 18 00:43:35 2014 Fixed #43 + Admin structure changes are now complete (just some
polishing to do) + Employer CRM is done (polish) fixes #32 + Fixed
#9
e6cf145 Samuel Giles Mon Feb 17 21:11:32 2014 Modifying admin structure to fit new data structure + Added
employer index + Added employer view
5ede325 Samuel Giles Sun Feb 16 23:27:08 2014 Validation for employer
e1475ee Samuel Giles Sun Feb 16 23:26:49 2014 Using new is_admin function on admin controller allowed + Added
new is_admin to user + Added another scope of coordinators to
user
40010ad Samuel Giles Sun Feb 16 23:25:41 2014 Users controller to support new profile page + Added ability to
change knowledge areas
3992994 Samuel Giles Sun Feb 16 23:24:58 2014 Add new user profile page
dcd3e2d Samuel Giles Sun Feb 16 23:24:22 2014 Add from/to dates for user + Added Keyskills to user
cabf7c8 Samuel Giles Sun Feb 16 23:23:50 2014 Added best_in_place and jquery ui gems
5e8c891 Samuel Giles Fri Feb 14 11:33:10 2014 Took employer data out into its own entity + Added coordinators
d714b9c Samuel Giles Fri Feb 14 10:12:47 2014 Added prompt to include outcome number whilst writing a question
272034c Samuel Giles Tue Feb 11 20:07:02 2014 Now randomly posts to twitter instead of every single time a
question is posted
3ed45ac Samuel Giles Mon Feb 10 15:10:14 2014 Remove twitter_setup.rb for good
10c1ed5 Samuel Giles Mon Feb 10 15:08:44 2014 Merge branch 'master' of https://github.com/samuelgiles/inquestion
Commit Ref Author Date/Time Message
Page of20 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
710ca14 Samuel Giles Mon Feb 10 15:06:07 2014 Removing twitter_setup.rb from git
1974722 Samuel Giles Mon Feb 10 14:52:10 2014 Updated homepage content - fixes #41
01ae732 Samuel Giles Mon Feb 10 14:52:10 2014 Updated homepage content - fixes #41
f1b4c2a Samuel Giles Mon Feb 10 14:51:09 2014 Finally made twitter posting work
1418d34 Samuel Giles Mon Feb 10 14:51:09 2014 Finally made twitter posting work
858c898 Samuel Giles Mon Feb 10 14:49:37 2014 Feature Link style for lists
43c6e5d Samuel Giles Sat Feb 8 21:39:23 2014 Tweaking twitter card integration
959fd61 Samuel Giles Sat Feb 8 21:00:29 2014 Added twitter:site and twitter:image - should fix the twitter card
5258cd5 Samuel Giles Sat Feb 8 20:59:35 2014 Added basic twitter update functionality
8ce982e Samuel Giles Wed Feb 5 21:52:18 2014 Protected notification methods + Stopped notification setup JS from
running unless the notification button can be found (user logged in)
67a2ddc Samuel Giles Wed Feb 5 21:37:11 2014 Added large icon for use in open graph tags
72c7d1a Samuel Giles Wed Feb 5 21:36:20 2014 Added open graph + twitter meta tags - closes #33
e793521 Samuel Giles Wed Feb 5 21:35:07 2014 Show question validation errors on admin question+ answer form
047c58e Samuel Giles Wed Feb 5 21:33:52 2014 Added notification to notify an author of a question that a user has
submitted an answer
eb28a8e Samuel Giles Wed Feb 5 21:33:24 2014 Removed extra console.log from application.js
280f991 Samuel Giles Tue Feb 4 23:18:22 2014 Basic validation on question form
2a77940 Samuel Giles Tue Feb 4 22:40:19 2014 Substantial amount of work on realtime notifications
9e7e348 Samuel Giles Tue Feb 4 18:34:35 2014 Modified notification partial to support not having an author + Fixed
#40
6efde12 Samuel Giles Mon Feb 3 23:58:49 2014 Added JS to setup notifications popover
8f10711 Samuel Giles Mon Feb 3 23:58:34 2014 Added animate.css library for UI animations
177c45d Samuel Giles Mon Feb 3 23:58:18 2014 Added notifications popover css
6a19aa6 Samuel Giles Mon Feb 3 23:58:03 2014 Added full_name to user
149b613 Samuel Giles Mon Feb 3 23:57:48 2014 Added notifications partials + render notifications popover in
application layout
7c186eb Samuel Giles Mon Feb 3 22:29:47 2014 Now using User.admins lambda in devise registration #new/#edit
c4db42f Samuel Giles Mon Feb 3 22:19:15 2014 Add unseen lambda to notification model
5fdc84c Samuel Giles Mon Feb 3 22:18:28 2014 Added answer notification
1b87f21 Samuel Giles Mon Feb 3 21:29:48 2014 Notifications model + Notifications relations on user
c42539a Samuel Giles Mon Feb 3 21:28:42 2014 Added notifications to database
923cfd8 Samuel Giles Mon Feb 3 13:39:05 2014 Fixed submit answer button not being present on question show
page
34ef999 Samuel Giles Sun Feb 2 22:39:31 2014 Postgresql uses a single = for comparison
Commit Ref Author Date/Time Message
Page of21 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
16c4901 Samuel Giles Sun Feb 2 22:03:17 2014 Ooops, there were no production settings for database
a374099 Samuel Giles Sun Feb 2 21:45:39 2014 Added postgresql - fixes #35
c225b50 Samuel Giles Sun Feb 2 16:23:05 2014 Added viewport so that responsive design works correctly
bfdcbdc Samuel Giles Sat Feb 1 22:56:50 2014 Basic accepted answer styling fixes #25
9ec7255 Samuel Giles Sat Feb 1 22:40:40 2014 Displaying all flash messages
f680269 Samuel Giles Sat Feb 1 22:22:53 2014 Updated gems (turbolinks now working again in Chrome)
9c95a88 Samuel Giles Sat Feb 1 22:16:05 2014 Changed admin create q+a form to use the new accepted answer
field
e76e4a5 Samuel Giles Sat Feb 1 21:47:42 2014 Changed the way the 'accepted' answer works, now the key is
inside the Question (the correct way)
455fdd7 Samuel Giles Sat Feb 1 20:32:00 2014 Basic responsive style in place - fixes #8
b16786d Samuel Giles Sat Feb 1 20:15:19 2014 Untrack .ds_stores
ed682b3 Samuel Giles Sat Feb 1 20:14:38 2014 Made link on homepage into a button
48f3ca0 Samuel Giles Sat Feb 1 20:14:08 2014 Created unanswered and answered scope for questions + Put
unanswered and answered question count in admin
6fe0a28 Samuel Giles Sat Feb 1 20:13:11 2014 Added new relic config to .gitignore + Added New Relic - fixes 29
851c1c3 Samuel Giles Fri Jan 31 14:41:41 2014 Basic button style for content buttons
71f0ecd Samuel Giles Fri Jan 31 14:40:47 2014 ActionView::Helpers::DateHelper needed to be included in User
model
6373a58 Samuel Giles Fri Jan 31 11:07:13 2014 Popular tags now implemented - fixes #16
a891777 Samuel Giles Fri Jan 31 10:38:12 2014 Removed coffee script + Added meta_request to be able to use
RailsPanel
4488aad Samuel Giles Fri Jan 31 10:37:34 2014 Redirecting users if they aren't an admin - fixes #23
0910d0b Samuel Giles Fri Jan 31 10:37:13 2014 Redirecting users if they aren't logged in - fixes #23
ddfc826 Samuel Giles Fri Jan 31 10:35:47 2014 Added use count to tags to roughly track their overall popularity
without an expensive query will help achieve #21
665c009 Samuel Giles Fri Jan 31 10:02:23 2014 Basic homepage now in - fixes #20
1d3fb14 Samuel Giles Fri Jan 31 09:44:18 2014 Admin button now hidden unless admin Fixes #19
0b6110b Samuel Giles Fri Jan 31 09:39:49 2014 Standard list styling
d0b63d5 Samuel Giles Fri Jan 31 09:39:38 2014 Ask a Question page now features some help and room for future
expansion once we have full text search implemented (requires
change to postgres)
2418d84 Samuel Giles Thu Jan 30 23:49:10 2014 Working on new question page #1
3f33ec3 Samuel Giles Thu Jan 30 22:29:56 2014 Added cumulative question count closes #12
b8b794e Samuel Giles Thu Jan 30 21:10:31 2014 Working on User view in admin
5d06256 Samuel Giles Thu Jan 30 14:05:10 2014 Added basic inquestion_admin js
Commit Ref Author Date/Time Message
Page of22 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
60843d4 Samuel Giles Thu Jan 30 14:04:51 2014 Added show method to user controller in admin that prints user in
json
2d8ccef Samuel Giles Thu Jan 30 14:03:42 2014 Added additional fields to allowed params on account_update
ca8d1d1 Samuel Giles Thu Jan 30 14:03:19 2014 Added extra user fields on edit page
d969d0a Samuel Giles Thu Jan 30 14:03:03 2014 Added id's to user index to aid in adding json data to page
78fd92a Samuel Giles Wed Jan 29 23:28:55 2014 Mockup of user info page
07b6a82 Samuel Giles Wed Jan 29 23:28:37 2014 Made modifications to param sanitisation to make room for extra
params for user
028a984 Samuel Giles Wed Jan 29 23:27:22 2014 Added selectize for autosuggest
12bb500 Samuel Giles Fri Jan 24 22:57:08 2014 Moved admin home into admin controller namespace + added
create question with answer page to admin + Added mockup of
user invitation page
f588793 Samuel Giles Fri Jan 24 22:55:53 2014 Added ability to select assessor on signup and in the options page
cdf37f9 Samuel Giles Fri Jan 24 22:55:05 2014 Fixed links on sign up not being block
13508a5 Samuel Giles Fri Jan 24 22:54:47 2014 Added admin layout as partial
7863cf6 Samuel Giles Fri Jan 24 22:54:29 2014 Added notice to layout
9f55073 Samuel Giles Fri Jan 24 17:08:48 2014 Building out admin section + Removed submit button from _fields
to be able to use fields together
d06a589 Samuel Giles Fri Jan 24 14:47:13 2014 Added last seen to user via gem (lastseenable)
20b5cce Samuel Giles Fri Jan 24 14:45:53 2014 Helper for number of online users
38a40e7 Samuel Giles Fri Jan 24 14:45:37 2014 Added NProgress, not using properly yet though because
turbolinks doesn't appear to be functioning
ed34c93 Samuel Giles Fri Jan 24 11:13:09 2014 About page + empty privacy, terms pages + Made footer links work
a9ab550 Samuel Giles Fri Jan 24 10:17:54 2014 Most importantly, a footer with credits
be53faf Samuel Giles Fri Jan 24 10:09:20 2014 Added README.rdoc
cf49515 Samuel Giles Fri Jan 24 10:04:16 2014 Answer fields +Answer form
21bdd37 Samuel Giles Fri Jan 24 10:03:12 2014 Adding better errors for assisting in debugging
23ec722 Samuel Giles Fri Jan 24 10:02:58 2014 Now showing answers on question page
0ae545a Samuel Giles Fri Jan 24 10:01:31 2014 Mocked up semi functional index for questions
7cb530c Samuel Giles Fri Jan 24 10:00:55 2014 Some more styling to support answers and the huge input box for
tags
492d598 Samuel Giles Fri Jan 24 10:00:01 2014 Added method to determine whether a question has been
answered + Relation to votes for question model
521ffae Samuel Giles Fri Jan 24 09:59:15 2014 Introduced answer votes + Mocking up the methods that need to
exist for answers
35ee2b7 Samuel Giles Tue Dec 10 01:26:24 2013 Laying out question show page + Separated question fields out into
partial
f8ea5a6 Samuel Giles Tue Dec 10 01:25:43 2013 Added question tag CSS + no theme colour for headers
Commit Ref Author Date/Time Message
Page of23 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
b93dbdf Samuel Giles Fri Dec 6 09:53:33 2013 Got the link_to Ask Questions correctly + Got Question show page
working + Got answer question form working
a55905d Samuel Giles Tue Dec 3 23:59:59 2013 Got basic Question creation working + Question new form
bd04e29 Samuel Giles Tue Dec 3 23:59:10 2013 Added login bar HTML
c110fb9 Samuel Giles Tue Dec 3 23:58:46 2013 Added new login bar at top of screen
2e872fe Samuel Giles Wed Nov 27 22:42:53 2013 Added employer information to user
dddc7ff Samuel Giles Wed Nov 27 02:01:16 2013 Made cover optional + Styled login pages + Styled forms
60c1a70 Samuel Giles Tue Nov 26 20:56:17 2013 Added user info + setup js, css + started elements page
2aae5f2 Samuel Giles Tue Nov 12 00:57:35 2013 Init commit + Nearly finished the migrations + model relations
Commit Ref Author Date/Time Message
Page of24 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Issues Register
I extracted the issues from github into a csv, I’ve formatted this data in a table for display in
this document - to view a full list of issues with tags, comments and progress information you
can go to http://github.com/samuelgiles/inquestion/issues -on github.com you can view the
full data which shows just how I was organising issues into milestones to keep my client
informed of what I had planned for each milestone and to help me create structured
worklists, the issues system replaced the PRINCE2 style planning documents expected of
me, effectively giving every issue a changing priority based on whether I had completed it
within the target milestone. Giving my client a way to see the issues that I knew were
outstanding meant I was able to keep them up to date if they wished to check in; allowing my
client to see progress on issues meant that when we reached Beta (and they could use the
site) they were able to notify me of any additional issues they found.
Issue ID Title Body Created At Updated At
51 No	way	as	an	admin	to	remove	a	ques4on 2014-03-10T20:32:01Z 2014-03-11T08:02:00Z
50
Possible	answers	some4mes	fails	to	return	any	
results	on	live?
2014-03-07T12:26:03Z 2014-03-10T20:31:30Z
48 Responsive	Design	is	out	of	date 2014-03-06T22:10:15Z 2014-03-10T20:31:37Z
47 Mailer	doesn't	work 2014-03-06T20:20:11Z 2014-03-06T22:09:58Z
46 Ques4on	overview	isn't	using	live	data 2014-03-06T09:49:11Z 2014-03-06T20:01:11Z
44 XMLSitemap 2014-02-19T10:06:08Z 2014-02-25T00:06:05Z
44 XMLSitemap 2014-02-19T10:06:08Z 2014-02-25T00:06:05Z
43
Assessor	and	
coordinator	can't	be	
selected	on	profile	
page
Can't	get	the	
associa4on	to	work	
properly	with	select	
box
2014-02-16T15:22:20Z 2014-02-18T00:43:52Z
42 Post	to	TwiWer	random	sample	of	ques4ons 2014-02-08T18:50:51Z 2014-02-11T20:10:38Z
41 Add	new	content	to	site 2014-02-04T18:36:20Z 2014-02-10T14:52:24Z
40
No4fica4on	full	name	displayed	is	incorrect,	its	
the	des4na4on	user	name	not	the	author
2014-02-04T09:08:33Z 2014-02-04T18:34:49Z
39 Add	buWon	to	clear	no4fica4ons 2014-02-04T00:09:52Z 2014-02-05T21:03:14Z
39 Add	buWon	to	clear	no4fica4ons 2014-02-04T00:09:52Z 2014-02-05T21:03:14Z
38
Add	tag	to	no4fy	list	and	receive	no4fica4ons	of	
ques4ons	posted	to	tag
2014-02-04T00:09:19Z 2014-02-18T22:40:50Z
37 Tag	view 2014-02-04T00:08:42Z 2014-02-26T01:25:16Z
36
Add	deployments	to	newrelic	via	capistrano	
plugin
2014-02-03T09:49:53Z 2014-02-05T21:03:55Z
35 Add	Postgresql 2014-02-02T21:43:55Z 2014-02-02T22:03:29Z
34 No	'answer'	buWon	on	ques4on	#show 2014-02-02T21:05:00Z 2014-02-05T21:04:13Z
33
OpenGraph	tags	to	beWer	represent	ques4on
+answer	informa4on	when	linked	to	on	twiWer/^
2014-02-02T15:40:25Z 2014-02-05T21:36:28Z
32 Employer	CRM
Need	to	have	a	system	
to	manage	employer	
details	and	assign	users	
to	these	employers
2014-02-02T15:37:23Z 2014-02-18T00:43:52Z
Page of25 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
32 Employer	CRM
Need	to	have	a	system	
to	manage	employer	
details	and	assign	users	
to	these	employers
2014-02-02T15:37:23Z 2014-02-18T00:43:52Z
29 No	way	to	monitor	app	performance 2014-02-01T19:43:20Z 2014-02-01T20:36:38Z
28 No	friendly	error	pages 2014-02-01T19:40:52Z 2014-03-06T20:47:09Z
26 Caching	isn't	being	used	anywhere 2014-02-01T19:37:06Z 2014-03-14T00:05:47Z
24
Introduc4on	to	site	on	
homepage
Some	kind	of	
introduc4on	to	the	site	
on	the	homepage,	
using	some	fancy	
anima4ons	and	
automa4c	scrolling	to	
introduce	the	site	step	
by	step.
2014-01-31T14:26:14Z 2014-02-02T15:32:42Z
23
Non	logged	in	users	can	reach	ac4ons	that	need	a	
user
2014-01-31T10:36:49Z 2014-01-31T10:38:22Z
22 Non	admin	users	can	get	to	admin	sec4ons 2014-01-31T10:36:21Z 2014-01-31T10:40:23Z
19 Admin	buWon	is	accessible	to	non-admins 2014-01-31T09:42:15Z 2014-01-31T09:59:54Z
18
Some	flash	messages	
aren't	appearing
On	the	login	screen	the	
error	messages	aren't	
being	displayed
2014-01-30T21:37:39Z 2014-03-11T08:02:19Z
17 Header	op4ons
Need	to	write	header	
op4ons	JS
2014-01-30T21:30:47Z 2014-02-26T01:25:25Z
15
Ques4ons	search	isn't	
func4onal
Ques4ons	index	needs	
to	allow	you	to	search	
ques4ons	by	tag	
2014-01-30T21:29:50Z 2014-03-13T22:08:53Z
13 Switch	to	staging	database 2014-01-30T21:27:27Z 2014-02-25T00:06:30Z
11 Use	selec4ze	on	tags	when	crea4ng	a	ques4on 2014-01-30T21:23:05Z 2014-03-10T20:31:06Z
9 Make	assessor	visible	on	admin	user	view	page 2014-01-30T21:21:58Z 2014-02-18T00:43:52Z
8 Responsive	Styling
Currently	only	a	
responsive	grid	in	
place,	needs	to	be	
made	func4onal
2014-01-30T21:21:31Z 2014-02-01T20:32:13Z
6 Op4ons	page	changes
Needs	to	be	split	up,	
'Profile'	page	with	links	
to	My	Ques4ons,	My	
Answers,	prompt	to	
update	employer	info	if	
it	isn't	in	the	database
2014-01-30T21:20:18Z 2014-02-18T22:49:27Z
5 My	Answers 2014-01-30T21:19:04Z 2014-03-13T23:45:55Z
4 My	Ques4ons 2014-01-30T21:18:51Z 2014-03-13T23:45:35Z
4 My	Ques4ons 2014-01-30T21:18:51Z 2014-03-13T23:45:35Z
3 No4fica4ons	don't	exist 2014-01-30T21:18:13Z 2014-02-04T00:08:10Z
3 No4fica4ons	don't	exist 2014-01-30T21:18:13Z 2014-02-04T00:08:10Z
2 Ques4ons	cannot	be	voted 2014-01-30T21:17:47Z 2014-03-04T23:29:55Z
1
Ask	screen	needs	fleshing	out	(possible	ques4ons	
responding	to	user	entering	tags)
2014-01-30T21:17:23Z 2014-03-06T09:27:45Z
1
Ask	screen	needs	fleshing	out	(possible	ques4ons	
responding	to	user	entering	tags)
2014-01-30T21:17:23Z 2014-03-06T09:27:45Z
Issue ID Title Body Created At Updated At
Page of26 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Risk Register
See below as the reason why tracking risks in a table is the most ridiculous idea ever in the
21st century - regardless I did follow the teachings to be able to achieve the marks, so I’ve
produced the table required below - you may need to use the zoom function to view the text
as its 8pt, and the table still looks stupid. I’m not sure how tracking these risks is really a
matter that project management staff should be too involved in as they are clearly going to
say things are going ‘just fine’ to avoid causing distress to the client (and being shouted at).
A better way to track risks would be some kind of project dashboard such as Basecamp
(https://basecamp.com/) where project members can see whats going on throughout a
project, discussions can be made about issues, risks and new developments and its all
tracked, real semantic data rather than endless Word Documents, Spreadsheets an charts
that are stuck on peoples individual computers instead of belonging to the project as a whole.
ID Date
Identified
Category Risk Likelihood Impa
ct
RAG Status Risk
Management
Approach
Early Warning
Signs
R1 01/11/2013 Skills
There is a
risk that I
may not be
able to learn
how to use
Devise, this
would be
caused by
lack of time
availability, it
would result
in the
authenticatio
n part of the
application
having
issues
Low(2)
Very
High
(5)
02/12/2013
: Devise is
implemente
d, lovely!
Ensure I set
aside the
time to learn
how to use
Devise to
avoid this
risk
Authentication code
not working
correctly
R2 01/11/2013 Skills
There is a
small risk
that I may
not be able
to implement
the
application
logic, this
would be
caused by a
lack of prior
knowledge
of Rails,
resulting in
an
application
that may
have issues
Very Low (1)
High
(4)
06/12/13:
Changed to
amber, not
completely
through
application
logic
developme
nt yet -
10/03/14:
Application
logically
complete
Ensure I
spend
enough time
on the
application
to overcome
and
knowledge
relating
issues to
reduce the
likelihood
this risk will
happen to 0
Struggling to write
application logic
resulting on issues
in the application
Page of27 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
R3 01/11/2013
Manageme
nt
Requirement
s may not
have been
set out
correctly,
caused by
lack of
understandi
ng of what is
required
from the
project,this
would result
in a solution
that doesn’t
meet my
clients
requirement
s
Low (2)
High
(4)
06/12/13:
Rob has
worked
through
system
with me via
prototypes,
says
functionalit
y is fine -
10/03/14:
Application
logically
complete
Ensure that
my client
has seen
and agreed
to the
business
case before
continuing to
develop the
application
to avoid this
risk
Functionality
coming out
muddled and
misguided
R4 01/11/2013
Deploymen
t
Not enough
publicity and
lack of drive
from
assessor
would mean
benefits may
not show,
caused by
assessors
not pushing
the system
to their
apprentices
resulting in
benefits not
showing
Medium (3)
Medi
um
(3)
06/12/13:
Reviewed
Ensure that
client
understands
the system
must be
pushed to
apprentices
to make the
benefits
show to
reduce the
likelihood
this will
happen
Lack of users
involvement
R5 08/11/2013
Manageme
nt
My client
(Rob) may
be leaving
his position,
this means
the person
the project
will be
delivered to
will change
High (4)
High
(4)
06/12/13:
Rob has
assured
me he will
not be
leaving this
position
I need to
confirm what
is
happening,
and if Rob
will be
leaving the
position I
need to shift
the projects
customer
N/A
ID Date
Identified
Category Risk Likelihood Impa
ct
RAG Status Risk
Management
Approach
Early Warning
Signs
Page of28 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Lessons Log
I had to do a small amount of research right at the start (mainly before the project) to piece
together the architecture under inquestion (Rails, PostgreSQL), when the project actually
started I needed to learn about a couple of the components I’d decided to use to save on
development time, I tracked these lessons in the log below.
I think a better way to convey this information would be a series of mini blog posts describing
what I did to ‘learn’ and what I did to prove that I understood this with links to documentation
used and to any examples, e.g. “Today I learnt how to use Devise, etc etc, see the code here:
github.com/xjbxkajb”.
Date Subject Reason Outcome
04/12/13 Devise
Gem
Users need to be able to login to
inquestion, I want to use Devise to
remove the need to develop user
authentication
I’ve learnt how to use Devise, its now
fully implemented and works brilliantly
10/01/14 Chartkick The admin section of inquestion
needs to easily convey the current
health of the site (answers vs
questions) and the growth of the
site
I played with Chartkick, then moved
onto perfecting pulling out data for
Chartkick and finally implemented
Chartkick in the admin section
12/01/14 Deployment Deployment was starting to become
tedious, I needed a way to quickly
deploy updates to the site as my
client was watching them, I had to
learn how to use Capistrano
Learnt how to use Capistrano, set up
the recipe for deployment for my
server setup, allowing me to quickly
deploy updates and allow my client to
rapidly see changes to the site
Page of29 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
What I would do differently
I think following the PRINCE2 ‘specification’ was a waste of time on a project of this size, its too
complicated and just doesn’t seem to scale very well at all, there should be no need in a
project to start off with that many documents - if you cannot convey the why, how and when
of a project in your own way to your clients then clearly your not up to the task of managing
the project in hand, relying on PRINCE2 documentation just hides you by providing a
confusing cloak of cryptic documents to disappear into when a client asks questions.
Ideally clients should be fully involved in a project, not just informed every couple of weeks -
using a connected, distributed solution like Basecamp would be ideal and clearly its where the
future is when complex companies such as Adidas, Twitter, NASA and DHL are using
Basecamp and similar solutions. Using an solution such as Basecamp means you can begin to
convey your understanding of a project in an easier way, and you can stay in connection with
your client at all times, involving them in decisions, allowing them to provide their input
during inter-project discussions and show progress as its being made, this means you no
longer need stacks of documentation, instead just relying on simple, well written messages
and updates that show you truly understand what your doing. Showing a client deadlines,
progress and allowing them to ask questions and provide input in a simple way is in my view a
great deal more beneficial than crowding them with page after page of documentation, some
clients may even be scared off by stacks of paperwork, they just want a solution.
Given a second chance at this project, without the need for PRINCE2 documentation but
instead just with an objective of managing the project in an efficient way I would setup a
Basecamp project and invite my client to it, all documentation would instead be in the form of
topic based discussions, branching out topics every time a requirement is talked about, all
deadlines for milestones would be on the project calendar, all updates would be tracked and
be within their specific topics, a private repository on Github would be used and the client
would be shown how to log issues and follow the progress of the project via the commit
messages - everything online, everything as simple to read real data, no documents required.
From an actual project point of view, I would have invested more time in development to be
able to expand the feature set of the site, I think this would’ve helped a great deal with
accelerating its adoption.
This Unit has been great, I’ve been allowed to work on something that really got me excited
using a new framework and language with a great deal of free-reign on the design and with a
lot of input on the actual functionality - however, I think the requirement to use PRINCE2
documentation ruined it for me, I don’t think PRINCE2 has room in todays connected world,
theres no killer solution, it doesn’t “just work”, I dread to think of the cost implications that
using it versus a modern solution would bring. 

Page of30 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Follow on Recommendations
The project has a good foundation based in Ruby on Rails, the community surrounding Rails is
very active, many of the components I used in my project drive some of the key features such
as Users, with this in mind there are many opportunities for using existing community
developed components to expand the feature set of inquestion, including:
• A better responsive design
• Developing an API to allow for applications to be built such as a mobile application
• Safari Web Push Notifications to notify users of activity even outside of the website
• HTML5 Notifications to allow staff to have inquestion open in the background and receive
notifications of activity
Outside of additional functionality I think there are other opportunities to use the existing
project and with a few modifications to expand its audience, including:
• Expanding the project into other apprenticeships
• Dividing the project up further into a multi-site/topic structure, e.g. it.inquestion.co.uk to
house all Yeovil College IT questions, or beauty.inquestion.co.uk to house all beauty course
based questions
• A social media campaign to promote the use of the site
• Showing apprentices how answering other students questions helps to create a community
of experts who can all help each other
The code for the project is available at github.com/samuelgiles/inquestion, any questions can
be directed at sam@samuelgil.es, some files (API keys for Twitter to power the activity feed,
deploy script) aren’t available on github, however users can easily fork the project, develop a
new feature and then submit a pull request, I’ll do my best to make it as easy as possible for
future students to add to the site.

Page of31 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014
Conclusion
I think the project has been a success from both a learning perspective and the client has
confirmed that they believe its been a success for them.
I’ve learnt a great deal about Rails, a massive amount about deployment and server
configuration and I’ve refined my workflow to suit Git and Github.
I’ve taken my knowledge of Rails and have started to use it professionally, my new knowledge
of server configuration has been very helpful in helping me make important decisions
regarding the technical outlook of future projects.
Page of32 32
FdSc CIT Level I Work-based Project 2013-14
© Copyright Samuel Giles 2014

More Related Content

What's hot

Prototyping for knowledge based entrepreneurship
Prototyping for knowledge based entrepreneurshipPrototyping for knowledge based entrepreneurship
Prototyping for knowledge based entrepreneurship
Vlad Manea
 
Sample Website Usability Analysis
Sample Website Usability AnalysisSample Website Usability Analysis
Sample Website Usability Analysis
Sherri Orwick Ogden
 
Career chomp
Career chompCareer chomp
Career chomp
Afrodite Ptd
 
Learners feedback 2010
Learners feedback 2010Learners feedback 2010
Learners feedback 2010
Llewellyn Scholtz
 
Project work zarkovic
Project work zarkovicProject work zarkovic
Project work zarkovic
MR Z
 
Recommendations
RecommendationsRecommendations
Recommendations
Charles Lenchner
 
EDEN - Infographics Crash Course
EDEN - Infographics Crash CourseEDEN - Infographics Crash Course
EDEN - Infographics Crash Course
Melissa A. Venable
 
Jeannine boone4_11portfolio
Jeannine boone4_11portfolioJeannine boone4_11portfolio
Jeannine boone4_11portfolio
jboo2
 
Web Design Diploma Level 3 - Adams Academy
Web Design Diploma Level 3 - Adams AcademyWeb Design Diploma Level 3 - Adams Academy
Web Design Diploma Level 3 - Adams Academy
Adams Academy
 
Inquiry and information_fluency_mini_lessons
Inquiry and information_fluency_mini_lessonsInquiry and information_fluency_mini_lessons
Inquiry and information_fluency_mini_lessons
CherelleR
 
meet stacy brewer
meet stacy brewermeet stacy brewer
meet stacy brewer
Lenovo
 

What's hot (11)

Prototyping for knowledge based entrepreneurship
Prototyping for knowledge based entrepreneurshipPrototyping for knowledge based entrepreneurship
Prototyping for knowledge based entrepreneurship
 
Sample Website Usability Analysis
Sample Website Usability AnalysisSample Website Usability Analysis
Sample Website Usability Analysis
 
Career chomp
Career chompCareer chomp
Career chomp
 
Learners feedback 2010
Learners feedback 2010Learners feedback 2010
Learners feedback 2010
 
Project work zarkovic
Project work zarkovicProject work zarkovic
Project work zarkovic
 
Recommendations
RecommendationsRecommendations
Recommendations
 
EDEN - Infographics Crash Course
EDEN - Infographics Crash CourseEDEN - Infographics Crash Course
EDEN - Infographics Crash Course
 
Jeannine boone4_11portfolio
Jeannine boone4_11portfolioJeannine boone4_11portfolio
Jeannine boone4_11portfolio
 
Web Design Diploma Level 3 - Adams Academy
Web Design Diploma Level 3 - Adams AcademyWeb Design Diploma Level 3 - Adams Academy
Web Design Diploma Level 3 - Adams Academy
 
Inquiry and information_fluency_mini_lessons
Inquiry and information_fluency_mini_lessonsInquiry and information_fluency_mini_lessons
Inquiry and information_fluency_mini_lessons
 
meet stacy brewer
meet stacy brewermeet stacy brewer
meet stacy brewer
 

Viewers also liked

DATA_2012_43
DATA_2012_43DATA_2012_43
DATA_2012_43
Brindha Subramanian
 
Fear of financing ?
Fear of financing ?Fear of financing ?
Fear of financing ?
Pedro Ruiz
 
Merford General_LinkedIn
Merford General_LinkedInMerford General_LinkedIn
Merford General_LinkedIn
Stef Zoeteman
 
AUK Sutton AR15 Low-Res
AUK Sutton AR15 Low-ResAUK Sutton AR15 Low-Res
AUK Sutton AR15 Low-Res
Menaka Lawrance
 
AGE UK ANNUAL REVIEW 14 FINAL
AGE UK ANNUAL REVIEW 14 FINALAGE UK ANNUAL REVIEW 14 FINAL
AGE UK ANNUAL REVIEW 14 FINAL
Menaka Lawrance
 
Diagramas final
Diagramas finalDiagramas final
Diagramas final
Jorge Luis Soto Marquez
 
Pakistan telecommunication-company-limited(PTCL)
Pakistan telecommunication-company-limited(PTCL)Pakistan telecommunication-company-limited(PTCL)
Pakistan telecommunication-company-limited(PTCL)
Arslan Haider
 

Viewers also liked (7)

DATA_2012_43
DATA_2012_43DATA_2012_43
DATA_2012_43
 
Fear of financing ?
Fear of financing ?Fear of financing ?
Fear of financing ?
 
Merford General_LinkedIn
Merford General_LinkedInMerford General_LinkedIn
Merford General_LinkedIn
 
AUK Sutton AR15 Low-Res
AUK Sutton AR15 Low-ResAUK Sutton AR15 Low-Res
AUK Sutton AR15 Low-Res
 
AGE UK ANNUAL REVIEW 14 FINAL
AGE UK ANNUAL REVIEW 14 FINALAGE UK ANNUAL REVIEW 14 FINAL
AGE UK ANNUAL REVIEW 14 FINAL
 
Diagramas final
Diagramas finalDiagramas final
Diagramas final
 
Pakistan telecommunication-company-limited(PTCL)
Pakistan telecommunication-company-limited(PTCL)Pakistan telecommunication-company-limited(PTCL)
Pakistan telecommunication-company-limited(PTCL)
 

Similar to inquestion

The reMoodle Project: Web Usability Meets Course Website Usability
The reMoodle Project: Web Usability Meets Course Website UsabilityThe reMoodle Project: Web Usability Meets Course Website Usability
The reMoodle Project: Web Usability Meets Course Website Usability
Ann Fandrey
 
Lean UX presentation (UXSG meetup #9)
Lean UX presentation (UXSG meetup #9)Lean UX presentation (UXSG meetup #9)
Lean UX presentation (UXSG meetup #9)
UX Consulting Pte Ltd
 
Resume_Brijesh_Pavith
Resume_Brijesh_PavithResume_Brijesh_Pavith
Resume_Brijesh_Pavith
beeemused
 
Zunairzakir
ZunairzakirZunairzakir
Zunairzakir
Zunair Sagitarioux
 
Zunairzakir
ZunairzakirZunairzakir
Zunairzakir
Zunair Sagitarioux
 
PSEWEB 2011: Plan it and they will come
PSEWEB 2011: Plan it and they will comePSEWEB 2011: Plan it and they will come
PSEWEB 2011: Plan it and they will come
Justice Institute of British Columbia
 
My 1-Day Coding EdTech Business Plan - Feedback Welcome
My 1-Day Coding EdTech Business Plan - Feedback WelcomeMy 1-Day Coding EdTech Business Plan - Feedback Welcome
My 1-Day Coding EdTech Business Plan - Feedback Welcome
Jonathan Novotny
 
Hands-On Task Management: From Interaction Design to web Strategy
Hands-On Task Management: From Interaction Design to web StrategyHands-On Task Management: From Interaction Design to web Strategy
Hands-On Task Management: From Interaction Design to web Strategy
Neo Insight
 
Carly Bruce User Experience Portfolio 2015
Carly Bruce User Experience Portfolio 2015Carly Bruce User Experience Portfolio 2015
Carly Bruce User Experience Portfolio 2015
Carly Bruce
 
Final project presentation CSE
Final project presentation CSEFinal project presentation CSE
Final project presentation CSE
Humayra Khanum
 
How Agile Are You Really?
How Agile Are You Really?How Agile Are You Really?
How Agile Are You Really?
Karoliina Luoto
 
Kim Liu Portfolio 2019
Kim Liu Portfolio 2019Kim Liu Portfolio 2019
Kim Liu Portfolio 2019
Kim Liu
 
Project report titles for mba in human services management
Project report titles for mba in human services managementProject report titles for mba in human services management
Project report titles for mba in human services management
mbaprojectconsultacy2014
 
Jesse Kells Resume 03-01-2016
Jesse Kells Resume 03-01-2016Jesse Kells Resume 03-01-2016
Jesse Kells Resume 03-01-2016
Jesse Kells
 
James Sullivan CV 2015
James Sullivan CV 2015James Sullivan CV 2015
James Sullivan CV 2015
James Sullivan
 
Defining the Damn Data
Defining the Damn DataDefining the Damn Data
Defining the Damn Data
Jen Matson
 
Bringing User-Centered Design Practices into Agile Development Projects
Bringing User-CenteredDesign Practices intoAgile Development ProjectsBringing User-CenteredDesign Practices intoAgile Development Projects
Bringing User-Centered Design Practices into Agile Development Projects
abcd82
 
internship report.pdf
internship report.pdfinternship report.pdf
internship report.pdf
shradhaketkale2
 
Integrated learning program | Technical Skills
Integrated learning program | Technical SkillsIntegrated learning program | Technical Skills
Integrated learning program | Technical Skills
manjunathan manju
 
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
Greg Laugero
 

Similar to inquestion (20)

The reMoodle Project: Web Usability Meets Course Website Usability
The reMoodle Project: Web Usability Meets Course Website UsabilityThe reMoodle Project: Web Usability Meets Course Website Usability
The reMoodle Project: Web Usability Meets Course Website Usability
 
Lean UX presentation (UXSG meetup #9)
Lean UX presentation (UXSG meetup #9)Lean UX presentation (UXSG meetup #9)
Lean UX presentation (UXSG meetup #9)
 
Resume_Brijesh_Pavith
Resume_Brijesh_PavithResume_Brijesh_Pavith
Resume_Brijesh_Pavith
 
Zunairzakir
ZunairzakirZunairzakir
Zunairzakir
 
Zunairzakir
ZunairzakirZunairzakir
Zunairzakir
 
PSEWEB 2011: Plan it and they will come
PSEWEB 2011: Plan it and they will comePSEWEB 2011: Plan it and they will come
PSEWEB 2011: Plan it and they will come
 
My 1-Day Coding EdTech Business Plan - Feedback Welcome
My 1-Day Coding EdTech Business Plan - Feedback WelcomeMy 1-Day Coding EdTech Business Plan - Feedback Welcome
My 1-Day Coding EdTech Business Plan - Feedback Welcome
 
Hands-On Task Management: From Interaction Design to web Strategy
Hands-On Task Management: From Interaction Design to web StrategyHands-On Task Management: From Interaction Design to web Strategy
Hands-On Task Management: From Interaction Design to web Strategy
 
Carly Bruce User Experience Portfolio 2015
Carly Bruce User Experience Portfolio 2015Carly Bruce User Experience Portfolio 2015
Carly Bruce User Experience Portfolio 2015
 
Final project presentation CSE
Final project presentation CSEFinal project presentation CSE
Final project presentation CSE
 
How Agile Are You Really?
How Agile Are You Really?How Agile Are You Really?
How Agile Are You Really?
 
Kim Liu Portfolio 2019
Kim Liu Portfolio 2019Kim Liu Portfolio 2019
Kim Liu Portfolio 2019
 
Project report titles for mba in human services management
Project report titles for mba in human services managementProject report titles for mba in human services management
Project report titles for mba in human services management
 
Jesse Kells Resume 03-01-2016
Jesse Kells Resume 03-01-2016Jesse Kells Resume 03-01-2016
Jesse Kells Resume 03-01-2016
 
James Sullivan CV 2015
James Sullivan CV 2015James Sullivan CV 2015
James Sullivan CV 2015
 
Defining the Damn Data
Defining the Damn DataDefining the Damn Data
Defining the Damn Data
 
Bringing User-Centered Design Practices into Agile Development Projects
Bringing User-CenteredDesign Practices intoAgile Development ProjectsBringing User-CenteredDesign Practices intoAgile Development Projects
Bringing User-Centered Design Practices into Agile Development Projects
 
internship report.pdf
internship report.pdfinternship report.pdf
internship report.pdf
 
Integrated learning program | Technical Skills
Integrated learning program | Technical SkillsIntegrated learning program | Technical Skills
Integrated learning program | Technical Skills
 
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
 

inquestion

  • 1. Page of1 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014 FdSc CIT Level I Work-based Project 2013-14 Sam Giles
  • 2. Introduction inquestion is my work based project, its also one of the first projects I’ve completed in Ruby on Rails, it has pushed my understanding of Rails and I believe the final product is of a good quality - I’m Sam Giles, I’m a full time developer at Ziontech Solutions Ltd, web development is both my hobby and job and has been so for around 6 years. I have extensive working experience with HTML, CSS, Javascript, VBScript, PHP and SQL, I’m currently actively working in C# (ASP.Net), Ruby (Ruby on Rails) and Node.js - before this project I’d pursued several smaller Ruby on Rails projects but nothing of this scale. In terms of project management, I’m used to working in small teams (1-3), using source control (Git), I usually approach projects from an all encompassing functional point of view, running through scenarios, producing rough entity diagrams until I’ve come to a functional implementation, implementing functionality as it makes sense in a almost vertical slice sense (e.g. make the whole of the users part of the system work). I track issues using Github personally, and at work we use Gitlab (Github clone), allowing me to track issues, assign them to milestones and record progress towards fixing them, I often tag issues to be able to turn the issue tracker into an organised work-list/todo-list. Project documentation is usually kept to a minimal, anything that other developers may need to know is written in the README file in the project root or maintained on the project Wiki at Github/Gitlab. The approach that I take to project management is one that works well for small teams, its constantly being tweaked as development techniques change and technology progresses. I’m doing the FdSc CIT as part of backing up my skills with evidence and background knowledge of the underlying technology (TCP/IP, Routing, HCI, Programming) used on the web; I’ve completed an Advanced Apprenticeship in IT Software Web & Telecoms Professionals and have been attending the course part-time, I’ve been funded through the course by my employer. I routinely have meetings with clients and regard myself as confident when it comes to talking about projects in both a technical and non-technical sense, I’ve developed skills with my time in the Retail sector and at Ziontech that enable me to both gather information from a customer with open questions and to sell them a solution, these skills have made communication during the project very easily with my client. My project stemmed from my Apprenticeship Assessor Rob and his need for a solution to create a single point of communication for apprentice’s questions.
 Page of2 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 3. My Client Rob was a perfect choice for being my client, he taught me multiple Units on BND IT at Yeovil College, was my Assessor on my Apprenticeship (one of the apprenticeships he heads at Yeovil College), he’s gotten to know my strengths, weaknesses and is passionate about using IT for innovative solutions, especially when they save him time! Rob was highly available during every stage of the project, often he came in person to my work to just catch up, other times he met me at UCY for discussions on developing features. Having gone through the apprenticeship myself when Rob and I talked about possible projects they didn’t stray too far from problems he and I encountered that could be solved through the uses of my strengths in developing web applications. One of Rob’s key problems and something that I can agree on as an ex-apprentice is that knowledge relating to the Apprenticeship’s units is mainly accessible through either conversation with an assessor or an email to an assessor in the form of questions about specific Apprenticeship Unit Outcomes and topics. After talking about what we could do in terms of how apprentices ask questions and assessors respond Rob came to a conclusion, he asked for a solution to “promote a single form of contact” as there is currently “no one consistent approach to apprentices contacting us for support”. The key objective we set out was that the application was to reduce the amount of time spent answering IT Apprentice’s questions and increase the quality of answers, this can be measured easily by looking at the user engagement, if users are using the site then it will be achieving this key objective. Page of3 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014 Rob Wood Yeovil College Higher Education and Work Based Learning Course Manager for Computing
  • 4. Page of4 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014 Key objective is to reduce the amount of time spent answering IT Apprentice’s questions and increase the quality of answers
  • 5. Problems faced by the business Currently Rob uses a system called OneFile, OneFile allows for Apprenticeship Assessors to communicate with their apprentices, track their progress and issue targets - it allows apprentices to ‘mail’ their assessor, this is then resent by OneFile as an email. Apprentices routinely email their assessors directly outside of OneFile for support, and they ask them questions in person when doing assessments and visits to workplaces. Having these different contact methods is confusing for Assessors and Apprentices, it also slows down the lead time on responses, OneFile messages are often filtered into a different inbox due to the number of emails that OneFile as a system sends out, Assessors do this as to not be bombarded by notifications from OneFile but at the same time it means they may be filtering out genuine questions from assessors. Having questions and answers inside OneFile in the form of messages directly between Assessors and Apprentices makes the Question+Answer redundant data: • Cannot be searched quickly by an assessor or apprentice • The answer may be forgotten about should the question be asked again • The same question could come in from different apprentices, the same answer will need to be written out time and time again With a solution in place that solves the issues of having to write up answers for each apprentice and having to manage multiple communication methods time will be freed up, this could have the upshot of providing a higher upwards limit on the number of apprentices that can be taken on per staff member.
 Page of5 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014 Currently a question is asked of a single assessor, they write up the answer, then send it back to the apprentice
  • 6. Solutions At Ziontech I have to come up with a variety of solutions to real business problems every day, I tried to think of solutions that would not only solve Robs problem but would push my existing skill set and use some of the knowledge I've gained on the course: • Standalone Windows application to enable fast searching and recording of questions +answers, would sit in task-bar • Custom mail server that you can CC an answer email into that would record the emails it receives with the students email as the question and the answer as the response for future use by any assessor via a web interface • Web Application to enable apprentices to ask questions and for assessors and/or other apprentices to answer these questions • Chrome Extension that extends OneFile by allowing Assessors to store most common questions + answers and quickly copy+paste them I decided that the Web Application would be the best solution, it would help create a highly visible single point of contact, it would enforce a brand that would stick with Apprentices to keep the solution in their mind when they go to ask questions and it added a massive variety of benefits. One of the key features the Web Application solution can provide is an easy to use interface to every question and answer ever asked. The solution can automatically attempt to answer the students question (should it have ever been asked before in some form), enables fast searching of the data and enables students to quickly get responses from their assessor and other students via the crowd-sourcing of the answer with voting. A responsive design enables the solution to be accessible from any device, helping to create the single point of contact required by my client.
 Page of6 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014 Recorded, searchable data Crowd Sourcing Accessible from any device
  • 7. Page of7 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014 With my solution, a student asks a question, the system searches for an answer and displays it to the user. If an answer cannot be found, then instead of just the assessor being asked, a whole community of users is asked.
  • 8. Technical Demands The site needed to be fast, cheap to run, and be easy accessible, most of all it had to promote itself by being easy to use to encourage students to ask questions via it. I had already marked Ruby on Rails as being the framework I’d build the site with, its something I’d been playing with on several smaller projects and it suits rapid development with an emphasis on doing things the right way - Rails has a huge active community, this adds a great deal of resources such as open-source projects, I’ve used jQuery, Less.js, chartkick, best_in_place, Normalize.css and Devise, this massively sped up the development of the site, without these libraries and frameworks I wouldn’t have been able to arrive at such a feature rich product. Responsive Design I employed the use of responsive design to help make inquestion accessible from different devices such as Mobile Phones and Tablets - often Assessors travel light and only carry and iPad or a Android Phone, it was important for me to be able to allow them to still respond to students questions. Responsive Design is a term that defines the use of a design that responds to the device its currently being viewed on - CSS (The stylesheets used to style the site) has a feature called Media Queries, Media Queries allow you to target a set of styles for a particular set of device statistics, such as screen size. Scalable inquestions initial budget is low, meaning the server specifications are fairly low, some of the operations that inquestion does (automatic question solving, question searching, etc) are complicated, I had to bear performance in mind every step of the way, using code analysis tools to check the quality of my code and using New Relic (server monitoring tool) to monitor the performance of sections of code (even individual database queries). inquestion is built on Rails 4, Rails 4 supports true multithreading and can be efficiently scaled by adding more Rails workers, I’m using an application server called Phusion Passenger, Phusion Passenger makes it very easy to scale up sites by just tuning the number of ‘workers’ that can be spawned, should inquestion get very popular in the future we just need to up the servers RAM and then add more workers. Searchable The site needed to make it very easy to lookup existing questions+answers, it does this in two ways, first by utilising full text search across multiple columns (a questions tags, title and content) to provide quick access to searching from the questions page, and secondly by automatically attempting to lookup possible answers to your question as you begin to type one - this all helps to make inquestion easy to use which in turn helps promote it being a single point of contact for apprentices.
 Page of8 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 9. Approach We were shown some PRINCE2 documentation, unfortunately I’m not a wizard, for this reason, and based on my working experience in the sector I approached the project with a much simpler set of documents and method of working. • Using a product checklist to outline the different sections of the project • Using Git for both planning via milestones, source control in place of a daily log and to track the issues (with their effects, progress, etc) • Record lessons • Build in logging from the start via code and server + client side analysis with New Relic, making proving that people are using the site easy To start the project I produced a ‘Project Initiation Document’, this had to be approved by my client. The project initiation document consisted of the following: • A business case, this document outlined what the problems in the business are and why the project is needed • Project Product Description, this document outlined each product I would produce in the project, it describes the quality expectations, skills required and the acceptance criteria. • Communication Management Strategy, this document shows the communication I should provide my client, how, how often and how detailed • Project Plan, shows how the project will be split up and the timescales for individual parts • Benefits Review Plan, describes how the project will be reviewed to determine if the initial benefits have been realised, including who is accountable, the resources I will use to prove benefits have been achieved and details of how I will use the resources • Quality Management Strategy, determines how the quality of the project will be reviewed and the standards that it should be compared to • Risk Management Strategy, gives an overview of the risks that I perceive may appear, and how I will manage them and other risks that may emerge during the project. • Daily log, though I gave up doing the this the traditional way as the way I was working (git) meant I was effectively writing a semantic log of each and every change to the project leading to a accurate log that can be used as real data to produce productivity graphs, track the rate that issues cropped up, track the rate at which I fixed issues and see my overall productivity I produced an issues register as I went using git, I’ve extracted this data for the sake of this report though it can be viewed online - I kept the lessons log, risk register and quality register up to date as I went, though they didn’t fit smoothly into my workflow so they aren’t quite as regular or semantic.
 Page of9 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 10. Managing the Project I relied on github for a great deal of the management side of the project, it handled my daily log and issues register, it really gives an interesting insight into the development of the project. The graph above shows commits over time, you can clearly see the initial research I did into the foundation (Rails) and the gems I would be using (Devise, Chartkick etc), this graph is possible because of the fact changes I made were being tracked using git. Above you can see the commits interface on github showing a selection of commits to inquestion, clearly you can see that I was stringent about making sure I made each commit about a specific feature, much of the development was done in a vertical slice style, with a whole feature being fully developed, you can see this in the log. Page of10 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 11. I tracked all my issues using the Github Issues feature, its a fantastic feature as you can tag issues and separate them into milestones, effectively allowing you to create an information rich to-do list with notes attached to each to-do, deadlines, tags, all useful information that allowed me to make sense of what needed to be done and when. Github Issues ‘Milestones’ are a great feature that really helped me out by allowing me to see what needed to be done within each stage, this replaced my plan. By planning my project out using milestones and tagged issues I was able to prioritise, plan and make decisions all within one easy to use, easy to navigate interface, avoiding a laborious task of updating Excel spreadsheets and attempting to record progress and making the system work for me. 
 Page of11 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 12. Communication Rob and I sat down before the start of the project and initially specced out some ideas for what I could tackle, then we moved onto the subject of relieving the workload of answering the same questions again and again of apprentices. I invited Rob to the office and we sat down with a pen and paper, I made him talk me through what he wants, how he envisaged it working and then reeled off some ideas for features and tweaks that could benefit the project. With a notepad full of scribblings from the meeting with Rob I set out to create the Project Initiation Document, in my opinion it didn’t really need to be sent to my client as we’d already had a formal discussion on what they wanted, how it will be made shouldn’t be something they have to worry about but alas my client had to give the go ahead. Communication after this initial document was in the form of brief chats when Rob popped into the office and via Email and Messenger - Rob was very quick to reply due to the convenient communication methods, this massively helped out as I was able to quickly bounce questions and gain feedback on the latest changes.
 Page of12 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 13. Delivering Requirements Right from the start of the project Rob and I talked about how it would be challenging to prove the benefits of this project, after some thinking we arrived at the conclusion that it wouldn’t be very complicated to pull out data on the usage of the site that would help to backup my clients own conclusion on how successful the project has been. Whilst building the admin section of inquestion I paid a great deal of thought to the data that would be needed to prove my benefits, to prove that people were using the site, that questions were being asked via the site and that answers were being submitted. Several graphs are present in the admin section, they help staff to see the health of site and help prove to the client that the site is achieving its benefits. My acceptance criteria stated the following: • Product must look professional • Assessors should be able to easily point apprentices at existing questions that have been answered Page of13 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 14. • Users should be able to browse questions by tags • Users having received answers for a question should be able to mark one as the most helpful • Apprentices should be able to answer other apprentices questions “Product must look Professional” The site has a simple look and feel that works well across all devices, the branding is basic and I believe will be quite recognisable by apprentices. The design is uncluttered, puts emphasis on actions and provides an easy to use interface to the massive amount of data that the site contains. “Assessors should be able to easily point apprentices at existing questions that have been answered” The site uses friendly URLs, friendly URLs both enhance the search engine visibility of the site and make URLs convey the page that your going to arrive at. Traditional URLs for data driven sites often look like http://inquestion.co.uk/questions?id=53, this tells you nothing about the question the link is about, the URLs in inquestion follow a form that includes the title in the URL, e.g. http://inquestion.co.uk/questions/whatisprince2, this URL clearly conveys that the page is a question about “What is PRINCE2?”. I believe the use of friendly URLs will make it easy for assessors to provide links to questions for apprentices, and the use of tagging means assessors can link a user a whole collection of questions about a topic for reference, e.g. http://inquestion.co.uk/tags/prince2. “Users should be able to browse questions by tags” The site allows users to easily browse by tag, they can click any tag on the site to go to a tag specific page that shows every question in the tag with sorting options to sort by popular questions, the date they were last updated and the top voted questions. “Users having received answers for a question should be able to mark one as the most helpful” Users can mark an answer as the ‘accepted answer’, when they do this not only do they make it easier for users to see the accepted answer (its highlighted in green) but they make the site smarter as these ‘answered’ questions are used to help automatically match a users question Page of14 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 15. to an answer as they are asking it, this should help to automatically remove duplicate questions/answers. “Apprentices should be able to answer other apprentices questions” Anyone can sign up to the site, from here Assessment staff can determine whether they are apprentices, if they are apprentices then they are placed under their relevant Assessor and Coordinator, else they are left (outside users can still add value to the site, such as employers and other teaching staff at the college). Any logged in user can answer questions, vote up questions and answers and submit questions. I’ve delivered all my requirements, and my client is very happy with the outcome of the project and cannot wait to start using it in the wild. I haven’t been able to gather enough information about the application in the wild to be able to 100% prove its achieved its goals, but the reports available in the admin will prove my benefits have been realised fully.
 Page of15 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 16. Page of16 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 17. Daily Log I’ve extracted my git commit data into a tsv and formatted it into a table below, its in a great deal of detail, enjoy!
 Commit Ref Author Date/Time Message 946d277 Samuel Giles Fri Mar 21 09:52:26 2014 Added mail_view gem to preview email templates on dev 6aaaf8a Samuel Giles Fri Mar 21 09:52:04 2014 Email is functional on dev + Closes #10 with introduce email function 3b83942 Samuel Giles Fri Mar 14 00:05:23 2014 Question vote button now on show page ce44731 Samuel Giles Fri Mar 14 00:01:52 2014 Caching implemented for questions partial closes #26 e325174 Samuel Giles Thu Mar 13 23:45:22 2014 My Questions + My Answers pages are in - closes #4 and #5 f4b7e6c Samuel Giles Thu Mar 13 22:08:37 2014 Increase tag paginate size 3322621 Samuel Giles Thu Mar 13 22:08:23 2014 Fixed a bug with tagging not working unless you used a # 85a7293 Samuel Giles Thu Mar 13 22:07:22 2014 Implemented question search : closes #15 ee83ce9 Samuel Giles Wed Mar 12 21:35:00 2014 Fixed error for users not logged in on question show 3bb929b Samuel Giles Wed Mar 12 21:34:44 2014 Made answers, question tags, votes dependant on question to prevent errors c7359e9 Samuel Giles Wed Mar 12 21:19:39 2014 Added full text index to answers ca5be07 Samuel Giles Wed Mar 12 21:06:56 2014 Added full text index to questions table 10a8279 Samuel Giles Mon Mar 10 22:48:07 2014 Notifications now work(ish) with responsive layout 58790b3 Samuel Giles Mon Mar 10 22:24:08 2014 Forgot to add users{ questions + answers } paths d7c141d Samuel Giles Mon Mar 10 21:38:13 2014 Made questions show use user.full_name 7a3e5de Samuel Giles Mon Mar 10 21:37:58 2014 Added placeholder my questions + my answers pages 4e3d08d Samuel Giles Mon Mar 10 20:43:58 2014 Added question destroy function to admin on question #show + Modified :notice to flash[:notice] to remove notices from query strings 72ca0ac Samuel Giles Mon Mar 10 20:03:56 2014 Removed focus styles from selectize less baed75b Samuel Giles Mon Mar 10 20:03:42 2014 Increased time before search to make the answer finder a little less annoying 6db61b5 Samuel Giles Mon Mar 10 20:02:06 2014 Added focus for selectize input b89d583 Samuel Giles Mon Mar 10 20:01:48 2014 Removed before_save and overwrote attribute writer for tag title to do lowercase and remove hash 8da34a3 Samuel Giles Mon Mar 10 19:28:47 2014 Modified friendly_id reserved words to block out more possibilities 3d8729d Samuel Giles Mon Mar 10 19:28:19 2014 Changed text referencing libraries on about page ff8b81a Samuel Giles Mon Mar 10 19:27:12 2014 Added supporting tag lookup with trigram searching for tag input boxes d8ef3f9 Samuel Giles Mon Mar 10 19:26:37 2014 Added tag-select class to tag input boxes Page of17 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 18. 1ac63fc Samuel Giles Mon Mar 10 19:25:36 2014 Fixing up selectize styling to fit with inquestion style ce12217 Samuel Giles Mon Mar 10 18:54:08 2014 Tag select code to init selectize added to application.js ff4dd3c Samuel Giles Mon Mar 10 18:53:49 2014 Restored normal tab functionality in selectize f8cb8f6 Samuel Giles Mon Mar 10 18:36:56 2014 Modified selectize to make it input the current selected item when you press tab or space 7d797ec Samuel Giles Sun Mar 9 21:31:25 2014 Added media element to hook into breakpoint changes via JS e2c37f4 Samuel Giles Sun Mar 9 21:30:50 2014 Made mobile menu support changing from closed to desktop 446701 Samuel Giles Sun Mar 9 21:22:36 2014 Making sure all tags are created lowercase 944a473 Samuel Giles Sun Mar 9 21:22:07 2014 Added basic mobile menu + Removed horrible &nbsp;'s 6f52ed9 Samuel Giles Fri Mar 7 13:03:07 2014 Now using full text searching instead of trigram with an english dictionary and support for partial words 82b962d Samuel Giles Thu Mar 6 22:42:42 2014 No longer receive notification about answering your own question - references #45 020a5fb Samuel Giles Thu Mar 6 22:40:11 2014 Reduced notification tick back to 5 seconds 2e98bfe Samuel Giles Thu Mar 6 22:25:53 2014 Tags on question #show now link to tag page 39eb3da Samuel Giles Thu Mar 6 22:23:59 2014 "asked around 5 days" should be "asked around 5 days ago" on questions index 61fb94d Samuel Giles Thu Mar 6 22:20:23 2014 Discovered in #49 - "There are 1 question" should be "There is 1 question" b957cbf Samuel Giles Thu Mar 6 22:08:33 2014 Updated content of question and answer to be text fields with nil limit instead of varying with 255 limit e7c7239 Samuel Giles Thu Mar 6 22:00:34 2014 Fixed error caused by no questions 2ba5a72 Samuel Giles Thu Mar 6 21:59:09 2014 Fixed errors caused by 0 questions in a tag e5ce350 Samuel Giles Thu Mar 6 21:12:02 2014 Ensuring users are signed in for Question vote 98b50c0 Samuel Giles Thu Mar 6 21:09:57 2014 Wasn't using try on current_user, meant errors for logged out users navigating site 17f96b5 Samuel Giles Thu Mar 6 20:57:46 2014 Set mail_sender in devise initialisers 6f94b6b Samuel Giles Thu Mar 6 20:53:24 2014 Needed to add default_url_options :host to production 11fc636 Samuel Giles Thu Mar 6 20:46:50 2014 Using sendmail for the moment 05b6629 Samuel Giles Thu Mar 6 20:43:17 2014 Terms and Conditions + Privacy filled with some fairly generic stuff 48a85ba Samuel Giles Thu Mar 6 20:19:18 2014 New error pages - closes #28 46c1871 Samuel Giles Thu Mar 6 14:20:11 2014 Corrected wrong kind of pluralise being used on tag page 1a4206d Samuel Giles Thu Mar 6 14:19:33 2014 Made question index show live data a0c7daa Samuel Giles Thu Mar 6 02:18:25 2014 Updated thresholds for trigram searching 54ecdda Samuel Giles Thu Mar 6 02:09:29 2014 I should go to bed db99670 Samuel Giles Thu Mar 6 02:06:35 2014 JS Wasn't pulling out possible questions correctly Commit Ref Author Date/Time Message Page of18 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 19. 564566a Samuel Giles Thu Mar 6 01:23:11 2014 Changed to schema_format :sql + Added fuzzy search install migration f2b42d6 Samuel Giles Thu Mar 6 01:17:20 2014 Fixed issues with pg_search implementation f8a51cf Samuel Giles Thu Mar 6 01:03:06 2014 Modified solver to user pg_search 779ef98 Samuel Giles Thu Mar 6 00:37:17 2014 Changed to pg_search 5829d1d Samuel Giles Wed Mar 5 23:41:49 2014 Missed textacular gem 854272b Samuel Giles Wed Mar 5 19:18:48 2014 Made solver a post to facilitate long queries accba50 Samuel Giles Wed Mar 5 19:15:35 2014 Added question auto solving - its a bit rough atm but it works 1d82baa Samuel Giles Tue Mar 4 23:28:59 2014 Tweaks to styling + Added accept prompt styling + Added accepted answer styling fb48367 Samuel Giles Tue Mar 4 23:28:11 2014 "Asked by you" on question show + Prompt to mark an accepted answer d3610f5 Samuel Giles Tue Mar 4 23:27:29 2014 Added time ago to question overview bf79fc4 Samuel Giles Tue Mar 4 23:27:14 2014 Fixed user signup page not working + Added new user welcome page fde3dd8 Samuel Giles Tue Mar 4 23:26:09 2014 Added ability to accept answer 4b71b76 Samuel Giles Mon Mar 3 23:46:06 2014 Took question overview out into its own partial + Took answers out into partial 3e82dc5 Samuel Giles Mon Mar 3 23:44:48 2014 Added vote method to answers controller + Adjusted answer + answer_vote models to work with voting 0e0d733 Samuel Giles Mon Mar 3 23:43:26 2014 Removed extra console.log in voting JS + Added missing init call in admin JS 42669d3 Samuel Giles Fri Feb 28 13:09:03 2014 Added voting (still fixing it around site, need to modify question view to be a partial) 3e5311a Samuel Giles Wed Feb 26 18:17:14 2014 Added author tag to inquestion about page pointing at myself de71f45 Samuel Giles Wed Feb 26 08:36:17 2014 Tag_list wasn't being set for admin created questions f0295ee Samuel Giles Wed Feb 26 08:01:59 2014 Updated to Rails 4.0.3 18aeb85 Samuel Giles Wed Feb 26 00:46:32 2014 Changed tracking code + Google site verify 379cd68 Samuel Giles Wed Feb 26 00:35:42 2014 Added Google Analytics 66a5fbb Samuel Giles Wed Feb 26 00:27:43 2014 Added <title> tag to questions + Added meta description and keywords c98a364 Samuel Giles Wed Feb 26 00:12:40 2014 Fixed a grammar issue when only 1 question exists in a tag 70e0698 Samuel Giles Tue Feb 25 23:57:55 2014 Adjusted limits on questions index 88a20b7 Samuel Giles Tue Feb 25 23:56:22 2014 Implemented tag #show + Tweaks to model lambdas + Misc fixes ae6923a Samuel Giles Tue Feb 25 23:54:38 2014 Added will_paginate and humanize gem 65717b1 Samuel Giles Tue Feb 25 15:06:23 2014 Changed tabbing on application.less + Added styles to support sort menu + Added JS to support sort menu 2f653b6 Samuel Giles Tue Feb 25 15:04:01 2014 Corrected spelling mistake on "Ban Iser" Commit Ref Author Date/Time Message Page of19 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 20. 1df45dd Samuel Giles Tue Feb 25 15:03:25 2014 Questions index now supports filtering between popular, recently answered and new questions 6d780c1 Samuel Giles Tue Feb 25 14:56:15 2014 Added needed reserved words to friendly_id 69ca9c9 Samuel Giles Tue Feb 25 14:54:14 2014 Changed "Answer Questions" to "View Questions" in header 849beb4 Samuel Giles Tue Feb 25 14:53:58 2014 Implemented friendly URLs for tags and questions b233744 Samuel Giles Tue Feb 25 10:14:31 2014 Missing belongs_to on answervote ceb58b2 Samuel Giles Tue Feb 25 10:14:07 2014 Added popular question scope + Fixed some issues with notifications on new question 866e935 Samuel Giles Tue Feb 25 00:25:52 2014 Added xml.gz mimetype 6f81ce2 Samuel Giles Tue Feb 25 00:05:34 2014 Created sitemap closes #44 3bc0e9b Samuel Giles Mon Feb 24 23:32:49 2014 Made sensitive areas of profile page invisible to other user unless correct permissions 5f8e9ee Samuel Giles Tue Feb 18 22:48:09 2014 Make all tags lowercase f8541d7 Samuel Giles Tue Feb 18 22:40:32 2014 Now sends notifications to users subscribed to the tags that a question is posted with - fixes #38 + Fixed issues with the way notifytags were implemented c2c8293 Samuel Giles Tue Feb 18 21:30:47 2014 Modified about to mention chartkick and best_in_place and PostgreSQL 7dd8007 Samuel Giles Tue Feb 18 21:29:58 2014 Extra small button size + Users can now remove knowledge fa7469c Samuel Giles Tue Feb 18 20:46:49 2014 Added admin functions to user profile page to transform user into Standard, Assessor and Coordinator 41dd353 Samuel Giles Tue Feb 18 00:43:35 2014 Fixed #43 + Admin structure changes are now complete (just some polishing to do) + Employer CRM is done (polish) fixes #32 + Fixed #9 e6cf145 Samuel Giles Mon Feb 17 21:11:32 2014 Modifying admin structure to fit new data structure + Added employer index + Added employer view 5ede325 Samuel Giles Sun Feb 16 23:27:08 2014 Validation for employer e1475ee Samuel Giles Sun Feb 16 23:26:49 2014 Using new is_admin function on admin controller allowed + Added new is_admin to user + Added another scope of coordinators to user 40010ad Samuel Giles Sun Feb 16 23:25:41 2014 Users controller to support new profile page + Added ability to change knowledge areas 3992994 Samuel Giles Sun Feb 16 23:24:58 2014 Add new user profile page dcd3e2d Samuel Giles Sun Feb 16 23:24:22 2014 Add from/to dates for user + Added Keyskills to user cabf7c8 Samuel Giles Sun Feb 16 23:23:50 2014 Added best_in_place and jquery ui gems 5e8c891 Samuel Giles Fri Feb 14 11:33:10 2014 Took employer data out into its own entity + Added coordinators d714b9c Samuel Giles Fri Feb 14 10:12:47 2014 Added prompt to include outcome number whilst writing a question 272034c Samuel Giles Tue Feb 11 20:07:02 2014 Now randomly posts to twitter instead of every single time a question is posted 3ed45ac Samuel Giles Mon Feb 10 15:10:14 2014 Remove twitter_setup.rb for good 10c1ed5 Samuel Giles Mon Feb 10 15:08:44 2014 Merge branch 'master' of https://github.com/samuelgiles/inquestion Commit Ref Author Date/Time Message Page of20 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 21. 710ca14 Samuel Giles Mon Feb 10 15:06:07 2014 Removing twitter_setup.rb from git 1974722 Samuel Giles Mon Feb 10 14:52:10 2014 Updated homepage content - fixes #41 01ae732 Samuel Giles Mon Feb 10 14:52:10 2014 Updated homepage content - fixes #41 f1b4c2a Samuel Giles Mon Feb 10 14:51:09 2014 Finally made twitter posting work 1418d34 Samuel Giles Mon Feb 10 14:51:09 2014 Finally made twitter posting work 858c898 Samuel Giles Mon Feb 10 14:49:37 2014 Feature Link style for lists 43c6e5d Samuel Giles Sat Feb 8 21:39:23 2014 Tweaking twitter card integration 959fd61 Samuel Giles Sat Feb 8 21:00:29 2014 Added twitter:site and twitter:image - should fix the twitter card 5258cd5 Samuel Giles Sat Feb 8 20:59:35 2014 Added basic twitter update functionality 8ce982e Samuel Giles Wed Feb 5 21:52:18 2014 Protected notification methods + Stopped notification setup JS from running unless the notification button can be found (user logged in) 67a2ddc Samuel Giles Wed Feb 5 21:37:11 2014 Added large icon for use in open graph tags 72c7d1a Samuel Giles Wed Feb 5 21:36:20 2014 Added open graph + twitter meta tags - closes #33 e793521 Samuel Giles Wed Feb 5 21:35:07 2014 Show question validation errors on admin question+ answer form 047c58e Samuel Giles Wed Feb 5 21:33:52 2014 Added notification to notify an author of a question that a user has submitted an answer eb28a8e Samuel Giles Wed Feb 5 21:33:24 2014 Removed extra console.log from application.js 280f991 Samuel Giles Tue Feb 4 23:18:22 2014 Basic validation on question form 2a77940 Samuel Giles Tue Feb 4 22:40:19 2014 Substantial amount of work on realtime notifications 9e7e348 Samuel Giles Tue Feb 4 18:34:35 2014 Modified notification partial to support not having an author + Fixed #40 6efde12 Samuel Giles Mon Feb 3 23:58:49 2014 Added JS to setup notifications popover 8f10711 Samuel Giles Mon Feb 3 23:58:34 2014 Added animate.css library for UI animations 177c45d Samuel Giles Mon Feb 3 23:58:18 2014 Added notifications popover css 6a19aa6 Samuel Giles Mon Feb 3 23:58:03 2014 Added full_name to user 149b613 Samuel Giles Mon Feb 3 23:57:48 2014 Added notifications partials + render notifications popover in application layout 7c186eb Samuel Giles Mon Feb 3 22:29:47 2014 Now using User.admins lambda in devise registration #new/#edit c4db42f Samuel Giles Mon Feb 3 22:19:15 2014 Add unseen lambda to notification model 5fdc84c Samuel Giles Mon Feb 3 22:18:28 2014 Added answer notification 1b87f21 Samuel Giles Mon Feb 3 21:29:48 2014 Notifications model + Notifications relations on user c42539a Samuel Giles Mon Feb 3 21:28:42 2014 Added notifications to database 923cfd8 Samuel Giles Mon Feb 3 13:39:05 2014 Fixed submit answer button not being present on question show page 34ef999 Samuel Giles Sun Feb 2 22:39:31 2014 Postgresql uses a single = for comparison Commit Ref Author Date/Time Message Page of21 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 22. 16c4901 Samuel Giles Sun Feb 2 22:03:17 2014 Ooops, there were no production settings for database a374099 Samuel Giles Sun Feb 2 21:45:39 2014 Added postgresql - fixes #35 c225b50 Samuel Giles Sun Feb 2 16:23:05 2014 Added viewport so that responsive design works correctly bfdcbdc Samuel Giles Sat Feb 1 22:56:50 2014 Basic accepted answer styling fixes #25 9ec7255 Samuel Giles Sat Feb 1 22:40:40 2014 Displaying all flash messages f680269 Samuel Giles Sat Feb 1 22:22:53 2014 Updated gems (turbolinks now working again in Chrome) 9c95a88 Samuel Giles Sat Feb 1 22:16:05 2014 Changed admin create q+a form to use the new accepted answer field e76e4a5 Samuel Giles Sat Feb 1 21:47:42 2014 Changed the way the 'accepted' answer works, now the key is inside the Question (the correct way) 455fdd7 Samuel Giles Sat Feb 1 20:32:00 2014 Basic responsive style in place - fixes #8 b16786d Samuel Giles Sat Feb 1 20:15:19 2014 Untrack .ds_stores ed682b3 Samuel Giles Sat Feb 1 20:14:38 2014 Made link on homepage into a button 48f3ca0 Samuel Giles Sat Feb 1 20:14:08 2014 Created unanswered and answered scope for questions + Put unanswered and answered question count in admin 6fe0a28 Samuel Giles Sat Feb 1 20:13:11 2014 Added new relic config to .gitignore + Added New Relic - fixes 29 851c1c3 Samuel Giles Fri Jan 31 14:41:41 2014 Basic button style for content buttons 71f0ecd Samuel Giles Fri Jan 31 14:40:47 2014 ActionView::Helpers::DateHelper needed to be included in User model 6373a58 Samuel Giles Fri Jan 31 11:07:13 2014 Popular tags now implemented - fixes #16 a891777 Samuel Giles Fri Jan 31 10:38:12 2014 Removed coffee script + Added meta_request to be able to use RailsPanel 4488aad Samuel Giles Fri Jan 31 10:37:34 2014 Redirecting users if they aren't an admin - fixes #23 0910d0b Samuel Giles Fri Jan 31 10:37:13 2014 Redirecting users if they aren't logged in - fixes #23 ddfc826 Samuel Giles Fri Jan 31 10:35:47 2014 Added use count to tags to roughly track their overall popularity without an expensive query will help achieve #21 665c009 Samuel Giles Fri Jan 31 10:02:23 2014 Basic homepage now in - fixes #20 1d3fb14 Samuel Giles Fri Jan 31 09:44:18 2014 Admin button now hidden unless admin Fixes #19 0b6110b Samuel Giles Fri Jan 31 09:39:49 2014 Standard list styling d0b63d5 Samuel Giles Fri Jan 31 09:39:38 2014 Ask a Question page now features some help and room for future expansion once we have full text search implemented (requires change to postgres) 2418d84 Samuel Giles Thu Jan 30 23:49:10 2014 Working on new question page #1 3f33ec3 Samuel Giles Thu Jan 30 22:29:56 2014 Added cumulative question count closes #12 b8b794e Samuel Giles Thu Jan 30 21:10:31 2014 Working on User view in admin 5d06256 Samuel Giles Thu Jan 30 14:05:10 2014 Added basic inquestion_admin js Commit Ref Author Date/Time Message Page of22 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 23. 60843d4 Samuel Giles Thu Jan 30 14:04:51 2014 Added show method to user controller in admin that prints user in json 2d8ccef Samuel Giles Thu Jan 30 14:03:42 2014 Added additional fields to allowed params on account_update ca8d1d1 Samuel Giles Thu Jan 30 14:03:19 2014 Added extra user fields on edit page d969d0a Samuel Giles Thu Jan 30 14:03:03 2014 Added id's to user index to aid in adding json data to page 78fd92a Samuel Giles Wed Jan 29 23:28:55 2014 Mockup of user info page 07b6a82 Samuel Giles Wed Jan 29 23:28:37 2014 Made modifications to param sanitisation to make room for extra params for user 028a984 Samuel Giles Wed Jan 29 23:27:22 2014 Added selectize for autosuggest 12bb500 Samuel Giles Fri Jan 24 22:57:08 2014 Moved admin home into admin controller namespace + added create question with answer page to admin + Added mockup of user invitation page f588793 Samuel Giles Fri Jan 24 22:55:53 2014 Added ability to select assessor on signup and in the options page cdf37f9 Samuel Giles Fri Jan 24 22:55:05 2014 Fixed links on sign up not being block 13508a5 Samuel Giles Fri Jan 24 22:54:47 2014 Added admin layout as partial 7863cf6 Samuel Giles Fri Jan 24 22:54:29 2014 Added notice to layout 9f55073 Samuel Giles Fri Jan 24 17:08:48 2014 Building out admin section + Removed submit button from _fields to be able to use fields together d06a589 Samuel Giles Fri Jan 24 14:47:13 2014 Added last seen to user via gem (lastseenable) 20b5cce Samuel Giles Fri Jan 24 14:45:53 2014 Helper for number of online users 38a40e7 Samuel Giles Fri Jan 24 14:45:37 2014 Added NProgress, not using properly yet though because turbolinks doesn't appear to be functioning ed34c93 Samuel Giles Fri Jan 24 11:13:09 2014 About page + empty privacy, terms pages + Made footer links work a9ab550 Samuel Giles Fri Jan 24 10:17:54 2014 Most importantly, a footer with credits be53faf Samuel Giles Fri Jan 24 10:09:20 2014 Added README.rdoc cf49515 Samuel Giles Fri Jan 24 10:04:16 2014 Answer fields +Answer form 21bdd37 Samuel Giles Fri Jan 24 10:03:12 2014 Adding better errors for assisting in debugging 23ec722 Samuel Giles Fri Jan 24 10:02:58 2014 Now showing answers on question page 0ae545a Samuel Giles Fri Jan 24 10:01:31 2014 Mocked up semi functional index for questions 7cb530c Samuel Giles Fri Jan 24 10:00:55 2014 Some more styling to support answers and the huge input box for tags 492d598 Samuel Giles Fri Jan 24 10:00:01 2014 Added method to determine whether a question has been answered + Relation to votes for question model 521ffae Samuel Giles Fri Jan 24 09:59:15 2014 Introduced answer votes + Mocking up the methods that need to exist for answers 35ee2b7 Samuel Giles Tue Dec 10 01:26:24 2013 Laying out question show page + Separated question fields out into partial f8ea5a6 Samuel Giles Tue Dec 10 01:25:43 2013 Added question tag CSS + no theme colour for headers Commit Ref Author Date/Time Message Page of23 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 24. b93dbdf Samuel Giles Fri Dec 6 09:53:33 2013 Got the link_to Ask Questions correctly + Got Question show page working + Got answer question form working a55905d Samuel Giles Tue Dec 3 23:59:59 2013 Got basic Question creation working + Question new form bd04e29 Samuel Giles Tue Dec 3 23:59:10 2013 Added login bar HTML c110fb9 Samuel Giles Tue Dec 3 23:58:46 2013 Added new login bar at top of screen 2e872fe Samuel Giles Wed Nov 27 22:42:53 2013 Added employer information to user dddc7ff Samuel Giles Wed Nov 27 02:01:16 2013 Made cover optional + Styled login pages + Styled forms 60c1a70 Samuel Giles Tue Nov 26 20:56:17 2013 Added user info + setup js, css + started elements page 2aae5f2 Samuel Giles Tue Nov 12 00:57:35 2013 Init commit + Nearly finished the migrations + model relations Commit Ref Author Date/Time Message Page of24 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 25. Issues Register I extracted the issues from github into a csv, I’ve formatted this data in a table for display in this document - to view a full list of issues with tags, comments and progress information you can go to http://github.com/samuelgiles/inquestion/issues -on github.com you can view the full data which shows just how I was organising issues into milestones to keep my client informed of what I had planned for each milestone and to help me create structured worklists, the issues system replaced the PRINCE2 style planning documents expected of me, effectively giving every issue a changing priority based on whether I had completed it within the target milestone. Giving my client a way to see the issues that I knew were outstanding meant I was able to keep them up to date if they wished to check in; allowing my client to see progress on issues meant that when we reached Beta (and they could use the site) they were able to notify me of any additional issues they found. Issue ID Title Body Created At Updated At 51 No way as an admin to remove a ques4on 2014-03-10T20:32:01Z 2014-03-11T08:02:00Z 50 Possible answers some4mes fails to return any results on live? 2014-03-07T12:26:03Z 2014-03-10T20:31:30Z 48 Responsive Design is out of date 2014-03-06T22:10:15Z 2014-03-10T20:31:37Z 47 Mailer doesn't work 2014-03-06T20:20:11Z 2014-03-06T22:09:58Z 46 Ques4on overview isn't using live data 2014-03-06T09:49:11Z 2014-03-06T20:01:11Z 44 XMLSitemap 2014-02-19T10:06:08Z 2014-02-25T00:06:05Z 44 XMLSitemap 2014-02-19T10:06:08Z 2014-02-25T00:06:05Z 43 Assessor and coordinator can't be selected on profile page Can't get the associa4on to work properly with select box 2014-02-16T15:22:20Z 2014-02-18T00:43:52Z 42 Post to TwiWer random sample of ques4ons 2014-02-08T18:50:51Z 2014-02-11T20:10:38Z 41 Add new content to site 2014-02-04T18:36:20Z 2014-02-10T14:52:24Z 40 No4fica4on full name displayed is incorrect, its the des4na4on user name not the author 2014-02-04T09:08:33Z 2014-02-04T18:34:49Z 39 Add buWon to clear no4fica4ons 2014-02-04T00:09:52Z 2014-02-05T21:03:14Z 39 Add buWon to clear no4fica4ons 2014-02-04T00:09:52Z 2014-02-05T21:03:14Z 38 Add tag to no4fy list and receive no4fica4ons of ques4ons posted to tag 2014-02-04T00:09:19Z 2014-02-18T22:40:50Z 37 Tag view 2014-02-04T00:08:42Z 2014-02-26T01:25:16Z 36 Add deployments to newrelic via capistrano plugin 2014-02-03T09:49:53Z 2014-02-05T21:03:55Z 35 Add Postgresql 2014-02-02T21:43:55Z 2014-02-02T22:03:29Z 34 No 'answer' buWon on ques4on #show 2014-02-02T21:05:00Z 2014-02-05T21:04:13Z 33 OpenGraph tags to beWer represent ques4on +answer informa4on when linked to on twiWer/^ 2014-02-02T15:40:25Z 2014-02-05T21:36:28Z 32 Employer CRM Need to have a system to manage employer details and assign users to these employers 2014-02-02T15:37:23Z 2014-02-18T00:43:52Z Page of25 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 26. 32 Employer CRM Need to have a system to manage employer details and assign users to these employers 2014-02-02T15:37:23Z 2014-02-18T00:43:52Z 29 No way to monitor app performance 2014-02-01T19:43:20Z 2014-02-01T20:36:38Z 28 No friendly error pages 2014-02-01T19:40:52Z 2014-03-06T20:47:09Z 26 Caching isn't being used anywhere 2014-02-01T19:37:06Z 2014-03-14T00:05:47Z 24 Introduc4on to site on homepage Some kind of introduc4on to the site on the homepage, using some fancy anima4ons and automa4c scrolling to introduce the site step by step. 2014-01-31T14:26:14Z 2014-02-02T15:32:42Z 23 Non logged in users can reach ac4ons that need a user 2014-01-31T10:36:49Z 2014-01-31T10:38:22Z 22 Non admin users can get to admin sec4ons 2014-01-31T10:36:21Z 2014-01-31T10:40:23Z 19 Admin buWon is accessible to non-admins 2014-01-31T09:42:15Z 2014-01-31T09:59:54Z 18 Some flash messages aren't appearing On the login screen the error messages aren't being displayed 2014-01-30T21:37:39Z 2014-03-11T08:02:19Z 17 Header op4ons Need to write header op4ons JS 2014-01-30T21:30:47Z 2014-02-26T01:25:25Z 15 Ques4ons search isn't func4onal Ques4ons index needs to allow you to search ques4ons by tag 2014-01-30T21:29:50Z 2014-03-13T22:08:53Z 13 Switch to staging database 2014-01-30T21:27:27Z 2014-02-25T00:06:30Z 11 Use selec4ze on tags when crea4ng a ques4on 2014-01-30T21:23:05Z 2014-03-10T20:31:06Z 9 Make assessor visible on admin user view page 2014-01-30T21:21:58Z 2014-02-18T00:43:52Z 8 Responsive Styling Currently only a responsive grid in place, needs to be made func4onal 2014-01-30T21:21:31Z 2014-02-01T20:32:13Z 6 Op4ons page changes Needs to be split up, 'Profile' page with links to My Ques4ons, My Answers, prompt to update employer info if it isn't in the database 2014-01-30T21:20:18Z 2014-02-18T22:49:27Z 5 My Answers 2014-01-30T21:19:04Z 2014-03-13T23:45:55Z 4 My Ques4ons 2014-01-30T21:18:51Z 2014-03-13T23:45:35Z 4 My Ques4ons 2014-01-30T21:18:51Z 2014-03-13T23:45:35Z 3 No4fica4ons don't exist 2014-01-30T21:18:13Z 2014-02-04T00:08:10Z 3 No4fica4ons don't exist 2014-01-30T21:18:13Z 2014-02-04T00:08:10Z 2 Ques4ons cannot be voted 2014-01-30T21:17:47Z 2014-03-04T23:29:55Z 1 Ask screen needs fleshing out (possible ques4ons responding to user entering tags) 2014-01-30T21:17:23Z 2014-03-06T09:27:45Z 1 Ask screen needs fleshing out (possible ques4ons responding to user entering tags) 2014-01-30T21:17:23Z 2014-03-06T09:27:45Z Issue ID Title Body Created At Updated At Page of26 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 27. Risk Register See below as the reason why tracking risks in a table is the most ridiculous idea ever in the 21st century - regardless I did follow the teachings to be able to achieve the marks, so I’ve produced the table required below - you may need to use the zoom function to view the text as its 8pt, and the table still looks stupid. I’m not sure how tracking these risks is really a matter that project management staff should be too involved in as they are clearly going to say things are going ‘just fine’ to avoid causing distress to the client (and being shouted at). A better way to track risks would be some kind of project dashboard such as Basecamp (https://basecamp.com/) where project members can see whats going on throughout a project, discussions can be made about issues, risks and new developments and its all tracked, real semantic data rather than endless Word Documents, Spreadsheets an charts that are stuck on peoples individual computers instead of belonging to the project as a whole. ID Date Identified Category Risk Likelihood Impa ct RAG Status Risk Management Approach Early Warning Signs R1 01/11/2013 Skills There is a risk that I may not be able to learn how to use Devise, this would be caused by lack of time availability, it would result in the authenticatio n part of the application having issues Low(2) Very High (5) 02/12/2013 : Devise is implemente d, lovely! Ensure I set aside the time to learn how to use Devise to avoid this risk Authentication code not working correctly R2 01/11/2013 Skills There is a small risk that I may not be able to implement the application logic, this would be caused by a lack of prior knowledge of Rails, resulting in an application that may have issues Very Low (1) High (4) 06/12/13: Changed to amber, not completely through application logic developme nt yet - 10/03/14: Application logically complete Ensure I spend enough time on the application to overcome and knowledge relating issues to reduce the likelihood this risk will happen to 0 Struggling to write application logic resulting on issues in the application Page of27 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 28. R3 01/11/2013 Manageme nt Requirement s may not have been set out correctly, caused by lack of understandi ng of what is required from the project,this would result in a solution that doesn’t meet my clients requirement s Low (2) High (4) 06/12/13: Rob has worked through system with me via prototypes, says functionalit y is fine - 10/03/14: Application logically complete Ensure that my client has seen and agreed to the business case before continuing to develop the application to avoid this risk Functionality coming out muddled and misguided R4 01/11/2013 Deploymen t Not enough publicity and lack of drive from assessor would mean benefits may not show, caused by assessors not pushing the system to their apprentices resulting in benefits not showing Medium (3) Medi um (3) 06/12/13: Reviewed Ensure that client understands the system must be pushed to apprentices to make the benefits show to reduce the likelihood this will happen Lack of users involvement R5 08/11/2013 Manageme nt My client (Rob) may be leaving his position, this means the person the project will be delivered to will change High (4) High (4) 06/12/13: Rob has assured me he will not be leaving this position I need to confirm what is happening, and if Rob will be leaving the position I need to shift the projects customer N/A ID Date Identified Category Risk Likelihood Impa ct RAG Status Risk Management Approach Early Warning Signs Page of28 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 29. Lessons Log I had to do a small amount of research right at the start (mainly before the project) to piece together the architecture under inquestion (Rails, PostgreSQL), when the project actually started I needed to learn about a couple of the components I’d decided to use to save on development time, I tracked these lessons in the log below. I think a better way to convey this information would be a series of mini blog posts describing what I did to ‘learn’ and what I did to prove that I understood this with links to documentation used and to any examples, e.g. “Today I learnt how to use Devise, etc etc, see the code here: github.com/xjbxkajb”. Date Subject Reason Outcome 04/12/13 Devise Gem Users need to be able to login to inquestion, I want to use Devise to remove the need to develop user authentication I’ve learnt how to use Devise, its now fully implemented and works brilliantly 10/01/14 Chartkick The admin section of inquestion needs to easily convey the current health of the site (answers vs questions) and the growth of the site I played with Chartkick, then moved onto perfecting pulling out data for Chartkick and finally implemented Chartkick in the admin section 12/01/14 Deployment Deployment was starting to become tedious, I needed a way to quickly deploy updates to the site as my client was watching them, I had to learn how to use Capistrano Learnt how to use Capistrano, set up the recipe for deployment for my server setup, allowing me to quickly deploy updates and allow my client to rapidly see changes to the site Page of29 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 30. What I would do differently I think following the PRINCE2 ‘specification’ was a waste of time on a project of this size, its too complicated and just doesn’t seem to scale very well at all, there should be no need in a project to start off with that many documents - if you cannot convey the why, how and when of a project in your own way to your clients then clearly your not up to the task of managing the project in hand, relying on PRINCE2 documentation just hides you by providing a confusing cloak of cryptic documents to disappear into when a client asks questions. Ideally clients should be fully involved in a project, not just informed every couple of weeks - using a connected, distributed solution like Basecamp would be ideal and clearly its where the future is when complex companies such as Adidas, Twitter, NASA and DHL are using Basecamp and similar solutions. Using an solution such as Basecamp means you can begin to convey your understanding of a project in an easier way, and you can stay in connection with your client at all times, involving them in decisions, allowing them to provide their input during inter-project discussions and show progress as its being made, this means you no longer need stacks of documentation, instead just relying on simple, well written messages and updates that show you truly understand what your doing. Showing a client deadlines, progress and allowing them to ask questions and provide input in a simple way is in my view a great deal more beneficial than crowding them with page after page of documentation, some clients may even be scared off by stacks of paperwork, they just want a solution. Given a second chance at this project, without the need for PRINCE2 documentation but instead just with an objective of managing the project in an efficient way I would setup a Basecamp project and invite my client to it, all documentation would instead be in the form of topic based discussions, branching out topics every time a requirement is talked about, all deadlines for milestones would be on the project calendar, all updates would be tracked and be within their specific topics, a private repository on Github would be used and the client would be shown how to log issues and follow the progress of the project via the commit messages - everything online, everything as simple to read real data, no documents required. From an actual project point of view, I would have invested more time in development to be able to expand the feature set of the site, I think this would’ve helped a great deal with accelerating its adoption. This Unit has been great, I’ve been allowed to work on something that really got me excited using a new framework and language with a great deal of free-reign on the design and with a lot of input on the actual functionality - however, I think the requirement to use PRINCE2 documentation ruined it for me, I don’t think PRINCE2 has room in todays connected world, theres no killer solution, it doesn’t “just work”, I dread to think of the cost implications that using it versus a modern solution would bring. 
 Page of30 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 31. Follow on Recommendations The project has a good foundation based in Ruby on Rails, the community surrounding Rails is very active, many of the components I used in my project drive some of the key features such as Users, with this in mind there are many opportunities for using existing community developed components to expand the feature set of inquestion, including: • A better responsive design • Developing an API to allow for applications to be built such as a mobile application • Safari Web Push Notifications to notify users of activity even outside of the website • HTML5 Notifications to allow staff to have inquestion open in the background and receive notifications of activity Outside of additional functionality I think there are other opportunities to use the existing project and with a few modifications to expand its audience, including: • Expanding the project into other apprenticeships • Dividing the project up further into a multi-site/topic structure, e.g. it.inquestion.co.uk to house all Yeovil College IT questions, or beauty.inquestion.co.uk to house all beauty course based questions • A social media campaign to promote the use of the site • Showing apprentices how answering other students questions helps to create a community of experts who can all help each other The code for the project is available at github.com/samuelgiles/inquestion, any questions can be directed at sam@samuelgil.es, some files (API keys for Twitter to power the activity feed, deploy script) aren’t available on github, however users can easily fork the project, develop a new feature and then submit a pull request, I’ll do my best to make it as easy as possible for future students to add to the site.
 Page of31 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014
  • 32. Conclusion I think the project has been a success from both a learning perspective and the client has confirmed that they believe its been a success for them. I’ve learnt a great deal about Rails, a massive amount about deployment and server configuration and I’ve refined my workflow to suit Git and Github. I’ve taken my knowledge of Rails and have started to use it professionally, my new knowledge of server configuration has been very helpful in helping me make important decisions regarding the technical outlook of future projects. Page of32 32 FdSc CIT Level I Work-based Project 2013-14 © Copyright Samuel Giles 2014