* [gentoo-soc] Weekly progress report (#1)
@ 2010-05-25 9:30 Joachim Bartosik
2010-06-01 11:29 ` [gentoo-soc] Re: Weekly progress report (#2) Joachim
` (8 more replies)
0 siblings, 9 replies; 11+ messages in thread
From: Joachim Bartosik @ 2010-05-25 9:30 UTC (permalink / raw
To: gentoo-soc
Note: this is slightly modified version of: post [0] on my blog.
I’m doing a web application for Gentoo Recruiters team. I’m doing it
using Ruby on Rails with Hobo.
I finished my first week of work. This week’s goal was to get something
basic working. This week I’ve completed a few tasks:
Setting up hobo project. It was pretty basic. I created new hobo
application and created .gitignore file.
Roles for users. User can be recruit, mentor or recruiter or guest. I
initially planned to use lifecycle to do it but Hobo allows only users
in active state to log in. I made a separate model for role. After that
and I noticed Hobo Enum Strings and replaced my Role model with
HoboFields::EnumString.for(:recruit, :mentor, :recruiter) . Recruiters
(an only recruiters) can be administrators. Administrators can do some
things nobody else can.
Creating new questions. Recruiters can create questions and question
categories (which is wrong – only administrators should be allowed to do
that). Each question belongs to one category.
Answering questions. Any user logged in can create an answer. Every
answer belongs to a question and is owned by user who created it.
Recruiter can give user categories of questions. Users should answer all
questions in categories they were assigned. Users can see all questions
in categories they were assigned, all questions they answered (including
those from other categories) and all questions in categories they were
assigned, but they didn’t answer. In all questions listings answered
questions are marked.
Viewing recruit answers. Registered user belongs to mentor (another user
with role mentor or recruiter). Mentors can view answers of users they
are mentoring. They can see:
* Answers given by each user they are mentoring.
* All answers given by all users they are mentoring.
* All answers for questions in each category, given by all users
they are mentor.
Demo. I put application on Heroku.
Finally a few links:
Working demo of my work on Heroku:
http://morning-winter-26.heroku.com/
Git repository with my project on overlays.gentoo.org. Accepted commits
go there. Once a commit went there you can expect it to stay there:
http://git.overlays.gentoo.org/gitweb/?p=proj/recruiting-webapp.git
Git repository with my project on github. Commits there get edited a lot
before they are pushed to repository on overlays.gentoo.org:
http://github.com/ahenobarbi/Gentoo-Recruiters-App
[0]
http://ahenobarbi.wordpress.com/2010/05/25/weekly-report-1-after-first-week-of-work/
Regards,
Joachim
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#2)
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
@ 2010-06-01 11:29 ` Joachim
2010-06-01 11:33 ` Joachim
2010-06-11 19:54 ` [gentoo-soc] Re: Weekly progress report (#3) Joachim
` (7 subsequent siblings)
8 siblings, 1 reply; 11+ messages in thread
From: Joachim @ 2010-06-01 11:29 UTC (permalink / raw
To: gentoo-soc
Again this is slightly modified version of [0]
Second iteration is a bit longer then the first one – it’s two weeks
long. The demo was not updated (I’ll update it after iteration), work is
going better this time – it takes about as much time as I predicted.
Last week I completed a few tasks:
I cleaned code up after first iteration. I removed a broken answers
counter (together with whole answers index which was useless), rewrote
some functions to do filtering in SQL query not in Ruby after fetching
results and fixed broken permissions.
I added seed data so you can start testing application easily and added
instructions on how to get it running to README file.
I moved to shoulda to make some tests cleaner. I wrote and started using
methods that set many permissions to avoid code duplication.
I make use of yeban’s work and replaced email+password login with OpenID
login. If you want to use OpenID with Hobo you can use updated version
of plugin from here.
I also upgraded the way answers are shown (now you can see question you
are answering/ you answered) and added support for reference answers.
[0]
http://ahenobarbi.wordpress.com/2010/06/01/weekly-report-2-%e2%80%93-middle-of-second-iteration/
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#2)
2010-06-01 11:29 ` [gentoo-soc] Re: Weekly progress report (#2) Joachim
@ 2010-06-01 11:33 ` Joachim
0 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-06-01 11:33 UTC (permalink / raw
To: gentoo-soc
W dniu 01.06.2010 13:29, Joachim pisze:
> I make use of yeban’s work and replaced email+password login with OpenID
> login. If you want to use OpenID with Hobo you can use updated version
> of plugin from here.
I forgotten link to repository:
http://github.com/ahenobarbi/openid_authentication_for_hobo
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#3)
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
2010-06-01 11:29 ` [gentoo-soc] Re: Weekly progress report (#2) Joachim
@ 2010-06-11 19:54 ` Joachim
2010-06-14 18:30 ` [gentoo-soc] Re: Weekly progress report (#3 ) Joachim
` (6 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-06-11 19:54 UTC (permalink / raw
To: gentoo-soc
I have problems with Internet connectivity, so I'll publish weekly
report #3 together with #4.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#3 )
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
2010-06-01 11:29 ` [gentoo-soc] Re: Weekly progress report (#2) Joachim
2010-06-11 19:54 ` [gentoo-soc] Re: Weekly progress report (#3) Joachim
@ 2010-06-14 18:30 ` Joachim
2010-06-22 16:33 ` [gentoo-soc] Re: Weekly progress report (#1) Joachim
` (5 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-06-14 18:30 UTC (permalink / raw
To: gentoo-soc
A slightly modified [0]
Last two weeks I had some problems both outside project(electricity
broke for one day, Internet access breaking) and inside project (too
late started merging feature branches with master (and forgot merging
time in planning iteration), commits were pushed too late). Those
problems resulted in scoping some stories out from 2nd iteration and
stretching 2nd iteration time.
Even so I did implement some features in week #3:
* Finished support for reference answers for questions.
* Added email notifications.
* Users can add categories of questions they should answer (not have
recruiter add it).
* Recruiters (not only admins) can promote users from recruits to
mentors.
* Mentor can approve and disapprove answers of recruits they are
mentoring. Newly created answers are disapproved, when user edit answer
it becomes unapproved.
I started a gem adding OpenID login support to Hobo. For now you can
download sources from repository [1] at GitHub, build it and install it
on your own. I shall release gem after my mentors will have a look at
sources.
Week #4 was mostly fixing sources (incl. merging and after-iteration fixes).
P.S. It turned out one problem I solved last week is back, preventing me
from making hobo_openid gem more details in discussion on hobo user
mailing list [2].
[0] http://ahenobarbi.wordpress.com/2010/06/14/weekly-summary-3-and-4
[1] http://github.com/ahenobarbi/hobo_openid
[2]
http://groups.google.com/group/hobousers/browse_thread/thread/d465d84f77a99821
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#1)
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
` (2 preceding siblings ...)
2010-06-14 18:30 ` [gentoo-soc] Re: Weekly progress report (#3 ) Joachim
@ 2010-06-22 16:33 ` Joachim
2010-06-28 20:03 ` [gentoo-soc] Re: Weekly progress report (#6) Joachim
` (4 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-06-22 16:33 UTC (permalink / raw
To: gentoo-soc
Note: As usually this is slightly modified version of: post [0] on my blog.
I feel the fifth week of my project was better than weeks 3&4. May be
because I finished my exams (I still have some things to do at my
Universities but they use far less of my time). I was a few hour behind
schedule at end of week 5. I think it was mainly because I severely
underestimated time required to switch from fixtures to Factory Girl[1]
in tests (it was a simple task but a big one ). I added two features
visible from user perspective:
* Listing of recruits with all questions answered.
* Support for mentor comments for recruit answers
I didn’t finish preparing gem adding OpenID support to Hobo because I
need to include taglib and there are problems with including taglibs
that come with gems other than Hobo. For details see bug report[2] and
discussion[3]. I think I can work around this problem but I wanted to do
things I knew I could do first.
I changed a few things not visible from user perspective:
* Started using Cucumber[4] for integration testing. I think this
will really improve my work. I already had problems because my ap was
missing view layer tests and I forgot to check something manually. I
didn’t write Cucumber features for already implemented functionalities
but I wrote features for all new stories I implemented.
* Switched to Factory Girl for tests. And tests have really become
better because of that I think.
[0] http://ahenobarbi.wordpress.com/2010/06/22/weekly-report-5/
[1] http://textmode.at/2008/6/12/factory-girl-rails-fixture-replacement
[2]
https://hobo.lighthouseapp.com/projects/8324/tickets/743-taglib_filename-expects-template_dir-to-contain-hobo_root#ticket-743-1
[3]
http://groups.google.pl/group/hobousers/browse_thread/thread/d465d84f77a99821/5fbfe3de375fef2e
[4] http://cukes.info/
Joachim
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#6)
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
` (3 preceding siblings ...)
2010-06-22 16:33 ` [gentoo-soc] Re: Weekly progress report (#1) Joachim
@ 2010-06-28 20:03 ` Joachim
2010-07-06 19:38 ` [gentoo-soc] Re: Weekly progress report (#7) Joachim
` (3 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-06-28 20:03 UTC (permalink / raw
To: gentoo-soc
Note: this is slightly modified version of: post [0] on my blog.
Another iteration finished, demo[1] updated, some new features
implemented. The new features are:
* Support for returning developers – it’s simply allowing recruiters
to demote mentors back to recruits.
* Support for project lead approval – each user can have nick
(his/her nick as Gentoo developer). Recruits are given (possibly many)
“project acceptances”. Project can be marked as accepted or not-accepted
(begins as not-accepted). Acceptance also has a nick of user who can
change it’s state. Application has listings of recruits waiting for you
acceptance.
I rewrote seed to make it cleaner (and moved user and question data to
external YAML files).
I made the gem[2] adding OpenID support to Hobo work. I had to make a
little fix[3] to Hobo to achieve it, so currently it works only with
version of Hobo from GitHub. The bad thing about it is that I decided to
work on OpenID story after it turned out to be problematic on my own. I
should have written to mentors that I have problems with OpenID and ask
them what to do in this situation. The result is I spent 12h working on
OpenID (I planned 4) and didn’t finish it (just having it work isn’t
enough).
[0] http://ahenobarbi.wordpress.com/2010/06/28/weekly-report-6/
[1] http://fierce-dusk-37.heroku.com/
[2] http://github.com/ahenobarbi/hobo_openid
[3]
http://github.com/tablatom/hobo/commit/74f63bbcf60e787c0a300311d7f0a3f82e8930d0
Joachim
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#7)
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
` (4 preceding siblings ...)
2010-06-28 20:03 ` [gentoo-soc] Re: Weekly progress report (#6) Joachim
@ 2010-07-06 19:38 ` Joachim
2010-07-16 16:32 ` [gentoo-soc] Re: Weekly progress report (#8) Joachim
` (2 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-07-06 19:38 UTC (permalink / raw
To: gentoo-soc
Note: this is slightly modified version of: post [0] on my blog.
Last week I did some behind the scenes improvements and added to features:
* Added support for alternative questions. Question can be assigned
to group, recruit can/ should answer only one question from each group
and all ungrouped questions.
* Added ability for users to suggest questions. Any logged in user
can create new question. No other user can see this question until
administrator approves it.
[0] http://ahenobarbi.wordpress.com/2010/07/06/weekly-report-7/
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#8)
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
` (5 preceding siblings ...)
2010-07-06 19:38 ` [gentoo-soc] Re: Weekly progress report (#7) Joachim
@ 2010-07-16 16:32 ` Joachim
2010-07-19 20:06 ` [gentoo-soc] Re: Weekly progress report (#9) Joachim
2010-08-19 20:04 ` [gentoo-soc] Gentoo Recruiters web app summary Joachim Bartosik
8 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-07-16 16:32 UTC (permalink / raw
To: gentoo-soc
Note: this is slightly modified version of: post [0] on my blog.
Last week (that is 2010.07.05-10) I added some features to Gentoo
Recruiters web app:
* Support for multiple choice questions. Users who answered all
multiple choice question they should will see on their home pages
messages indicating if their answers were correct. The message tells
only if all answers were correct or if there was at least on wrong answer.
* Making sure mentors are Gentoo developers long enough. When user
is edited application check will check if user role is mentor. If it is
app will check if nick of user is nick of Gentoo developer and if the
developer is Gentoo dev long enough. Several things are configurable:
o If this check should be performed or not.
o URI from which developer data shall be obtained.
o Minimum time spent as Gentoo dev before one can become mentor
* Support for testing gentoo-dev-announce posting. This adds a new
question type, that can’t be answered using web app. It can be answered
by sending email to the application. Once app receives email it will
check who sent it (using from field of the email) and question it’s
answer for (using email title) and check if it meets specified criteria.
Also we started a new iteration this week, so demo[1] of the application
got updated. It contains some bugs that were discovered when I was
covering existing features with cucumber (more about it in next weekly
report on Mon).
[0]
http://ahenobarbi.wordpress.com/2010/07/16/gsoc-gentoo-recruiters-weekly-progress-report-8/
[1] http://fierce-dusk-37.heroku.com/
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Re: Weekly progress report (#9)
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
` (6 preceding siblings ...)
2010-07-16 16:32 ` [gentoo-soc] Re: Weekly progress report (#8) Joachim
@ 2010-07-19 20:06 ` Joachim
2010-08-19 20:04 ` [gentoo-soc] Gentoo Recruiters web app summary Joachim Bartosik
8 siblings, 0 replies; 11+ messages in thread
From: Joachim @ 2010-07-19 20:06 UTC (permalink / raw
To: gentoo-soc
Note: this is slightly modified version of: post [0] on my blog.
Last week (after finishing previous iteration) I finally managed to stay
a bit ahead of schedule. This iteration titled is polish so I was
polishing the application:
* I improved quality of some stories from last iteration that
weren’t ready. There is still one story left – email questions. Now
application uses email from field and subject to identify who is
answering what question. To make it harder to break someones answers by
sending forged emails I’ll rewrite it to use tokens to identify users.
* Navigation bar had too many tabs I cleaned it.
* Seed data are now interpreted as ERB[1]. I did it to allow
configuring domain for seed users (to make testing easier).
* I replaced plain text fields in some models with
HoboFields::MarkdownString[2] so now users can use markdown[3] in
answers, comments and questions. I also updated seed to use markdown
where it’s useful.
My app is:
* On GitHub[4] (history is rewritten a few times a day).
* On Gentoo[5] overlays (what goes there shouldn’t change).
* On Heroku[6] (demo updated every second week).
[0]http://ahenobarbi.wordpress.com/2010/07/19/gsoc-gentoo-recruiters-weekly-progress-report-9/
[1]http://en.wikipedia.org/wiki/ERuby
[2]http://cookbook.hobocentral.net/manual/hobofields/rich_types#id197
[3]http://en.wikipedia.org/wiki/Markdown
[4]http://github.com/ahenobarbi/Gentoo-Recruiters-App
[5]http://git.overlays.gentoo.org/gitweb/?p=proj/recruiting-webapp.git
[6]http://fierce-dusk-37.heroku.com/
Joachim
^ permalink raw reply [flat|nested] 11+ messages in thread
* [gentoo-soc] Gentoo Recruiters web app summary
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
` (7 preceding siblings ...)
2010-07-19 20:06 ` [gentoo-soc] Re: Weekly progress report (#9) Joachim
@ 2010-08-19 20:04 ` Joachim Bartosik
8 siblings, 0 replies; 11+ messages in thread
From: Joachim Bartosik @ 2010-08-19 20:04 UTC (permalink / raw
To: gentoo-soc
[-- Attachment #1: Type: text/plain, Size: 4221 bytes --]
Note: this is slightly modified version of: post [0] on my blog.
Coding for Google Summer of code has ended on Monday so here is a quick
overview of what application can do. It’s pretty basic web application,
but should do the work in the beginning I’ll continue working on it so
some shiny features I (and not only I) wanted in the application shall
get here in the future.
Users
Each user in application has a role. Role can be guest, recruit, mentor
or recruiter. There are also two groups with additional permissions:
project leads and administrators. Every role has different permissions.
User who is not logged in is guest, who can only view some questions and
read question descriptions. After creating account user will be recruit
or mentor. To be mentor after registration user should use OpenID
https://dev.gentoo.org/~nick to register. Recruiters can promote
recruits to mentors and demote mentors to recruits. Administrators can
demote recruiters to recruits or mentors and promote recruiters to
administrators. User must be recruiter to be administrator.
Mentors and recruiters must be Gentoo developers for at least 6 months
so application requires them to provide their nicks. Application can
check if mentors provided nick of Gentoo developer and if developer with
this nick is with Gentoo long enough.
Application can also fetch list of (sub)*project leads from gentoo.org
and mark users who are project leads as project leads.
Questions
Any signed up user may create a question. Questions created by
administrators are public: all users can view them and answer them.
Questions created by non-administrators are private (or suggested)
questions: only creator and recruiters can view those questions.
Administrator can approve suggested question and then it becomes a
public question.
Questions belong to categories and groups. It probably could use a
better wording to avoid confusion (as I explain below they are quite
different things but names may be confusing).
Recruiters tell users questions in which categories they should answer.
They do so by adding relationships between users and categories.
Question in group are alternative questions – user should answer only
one question from every group. Application choses randomly question user
should answer from every question group. Guests can’t see grouped
questions – but they can see description of group (so they can prepare
to answer question). Recruits can see only those grouped questions they
should answer. Mentors can see grouped questions their recruits should
answer. Recruiters can see all questions.
Question can have content of one of three types:
* Text questions. recruits write their answers. Recruiters and
mentors then check answer. Mentor of recruit who gave the answer can
make comments to help recruit improve answer. Recruiters can give
reference answers for questions (only recruiters can see reference answers).
* Multiple choice questions. When recruit answers all multiple
choice questions [s]he should [s]he will see a message on the home page
indicating if all answers were correct or if there was at least one
wrong. Application checks if answer is correct by comparing it to
reference answers. All multiple choice questions should have reference –
if there is no reference answer for question application will assume
recruits answer was correct
* Email questions. To answer email question recruit sends email to
application. The email should match specified conditions (not visible to
recruits).
Email notifications
Application sends email in few cases: When recruit gives a new answer or
changes existing answer application sends notification to mentor of the
recruit. When mentor comments answer application sends notification to
user who gave the answer. When new public question appears application
sends notifications to recruits who should answer it.
OpenID
It’s possible to sign up and login with OpenID.
Feedback
When answering questions recruits can express their opinion about
documentation.
[0]
http://ahenobarbi.wordpress.com/2010/08/19/gsoc-gentoo-recruiters-web-app-summary/
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 900 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2010-08-19 20:04 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-25 9:30 [gentoo-soc] Weekly progress report (#1) Joachim Bartosik
2010-06-01 11:29 ` [gentoo-soc] Re: Weekly progress report (#2) Joachim
2010-06-01 11:33 ` Joachim
2010-06-11 19:54 ` [gentoo-soc] Re: Weekly progress report (#3) Joachim
2010-06-14 18:30 ` [gentoo-soc] Re: Weekly progress report (#3 ) Joachim
2010-06-22 16:33 ` [gentoo-soc] Re: Weekly progress report (#1) Joachim
2010-06-28 20:03 ` [gentoo-soc] Re: Weekly progress report (#6) Joachim
2010-07-06 19:38 ` [gentoo-soc] Re: Weekly progress report (#7) Joachim
2010-07-16 16:32 ` [gentoo-soc] Re: Weekly progress report (#8) Joachim
2010-07-19 20:06 ` [gentoo-soc] Re: Weekly progress report (#9) Joachim
2010-08-19 20:04 ` [gentoo-soc] Gentoo Recruiters web app summary Joachim Bartosik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox