GSoC’18 Sixth Coding Week

ANJALI DHANUKA
4 min readJun 25, 2018

--

So we are done with the First Phase, evaluations and all the stuff. This blog is in continuation with GSoC’18 First Phase Evaluations. Now let’s head to the first coding week of the second phase.

After the first phase evaluations, I got a bit more careful about scrum check ins, weekly report and stuff.

Let’s move on to the tasks for the week. The task for the week was to provide the reporting functionality.

  1. The volunteers can generate reports on the basis of event, job or duration.
  2. The submitted reports will be confirmed by the administrators.
  3. Only the administrator can view old reports volunteerwise

I had already sneaked in the office hours of my administrator to discuss about the task the previous week itself.

  1. Generating reports

The volunteer can generate reports for the shifts the volunteer has logged the hours for.

I developed the database schema for the reports.

Report Model

VolunteerShift is the intermediary model for volunteers and shifts, many to many related with reports. Thus, we filter the logged volunteer shifts based on volunteer, event, job and duration and also calculate the total hours he has worked. Also, there is a confirm status of reports which divides the reports in 3 categories: pending, confirmed or rejected.

2. Deal with duplication of work

Once the volunteer has generated the report for a volunteer shift those shifts can not be used again in generating reports until the report is rejected by the administrator.

For this, I added a boolean field in VolunteerShift Model. This way, we can prevent the volunteers from showcasing his old work.

Volunteer Shift Model

3. Managing reports

Once a volunteer has generated a report, it has to be confirmed by at least one administrator. There is a view which shows all the pending reports sorted datewise i.e the newest first and so on.

The administrator can either view or reject a report. If he reject the report, the volunteer can reuse the shifts and generate other reports from that.

4. Approving a report

Once an administrator chooses to view a report, he is provided an option to confirm the report.

The report consists of all the logged volunteer shifts giving full details of the event, job, logged start time and logged end time. The event name, job name, logged start time and end time are obtained for each volunteer shift as they are all related models.

Since Event, job, shift are all realetd models we can obtain all of them for a volunteer shift. Also, a dictionary is used to display the report and all these fields are stored in corresponding variables.

The administrator can verify the reports and approve them, and this way the organization of the volunteer can keep track of his work hours and shifts.

5. Viewing old reports volunteerwise

Sometimes, the organization may want to see the track record of the volunteer i.e details about his work so far. Thus the administrators can view the old confirmed reports of the volunteer. He is shown a list of the reports datewise, all of them viewable. The administrator can use the information accordingly.

Volunteer Report Profile

Task for the next week

As we also need to finalize the tasks for the upcoming week too. We had 2 options —

  1. Writing tests for the enhancements
  2. Communicate with the Portal Api

The former was choosen as the latter one has 2 fields which additionally needs to be added by the Portal Student. So it was a great week. Also, I got my first Phase amount too. I was damn happy as it was my first salary. I along with my family headed for dinner at night and yes, the bill was paid by me. It was a great feeling. Next I will be sharing my second week’s experience. Stay connected till then.

--

--

ANJALI DHANUKA

Student Developer at GSoC | Programmer | Applied Mathematics Undergrad at IITR