From Fedora Project Wiki

The main page for Summer Coding 2010 ideas is Summer Coding 2010 ideas.

Status: Accepted

Summary of idea: Student Project Management System

Contacts: Shreyank Gupta <shreyankg @ fedoraproject.org >, Shrink on irc.freenode.net/#fedora-india

Mentor(s): Shreyank Gupta


Introduction

The idea is to develop a web-based application which would allow Mentors and Students to collaborate effectively and get the process of mentoring automated.

The Idea

The idea Student Project Management System that would probably turn out to be a good idea should include the following:

  [a] accept and flag proposals
  [b] allow milestones from multiple projects to be included in a calendar
  [c] allow automated reminders to be generated against milestones
  [d] allow projects to be signed-off by mentors to denote completion
  [e] allow link to repositories of code to be mapped with the project
  [f] allow creation of a Project Dashboard with proposed mentors

The following aspects be considered for inclusion as part of the process flow:

  [a] Students receive a rigid time-frame of 15 days from the date of registration to propose a project
  [b] Any student / student group that fails to meet condition [a] above, receives an automated notification from the system providing a 3 day period post which their account would be flagged inactive
  [c] For any proposal / project a student / student group desires to undertake, provide a set of qualifying tasks to assess the capability of the student / student group to
  [d] Allow Certificate of Participation to be generated only if the project has a sign-off from the mentor

To ensure that the mentors feel part of the system, the following could come in handy :

Request all interested mentors to propose at least a single project for which they would like a student / student group to be working on. The proposal for the project should ideally include the following properties:

  [i] Project Definition
  [ii] Project Scope
  [iii] Estimated Time
  [iv] Project Description (including toolkits, frameworks)
  [v] A rating of complexity (initially arbitrary)
  [vi] Project Deliverables (including artifacts, documentation)

In short, the system should allow mentors and students to:

  • create accounts
  • have individual and project centric dashboards
  • act as a repository for formal documentation
  • allow calendaring for automated reminders
  • include a version control system
  • include a ticketing system

(the last two can be optionally tweaked for projects with existing upstreams)

The Prototype

The development snapshot can be accessed at http://github.com/shreyankg/fsoc

Existing Features:

User Management:

  • Authentication of three different types of users:
0. Guest user (unauthenticated user)
1. Admin
2. Mentors
3. Students
  • Project listing.
  • User listing.
  • User profile with information about project activities.

Projects Ideas:

  • Mentors and Students able to add project ideas.
  • Mentors can volunteer to mentor a project of their choice.
  • Project proposers and mentors can edit project ideas.
  • Project proposers can delete project ideas without any mentor.
  • Admin can add/edit/delete all projects.

Proposals from students:

  • Students able to submit proposals for all projects.
  • Students able to edit proposals.
  • Mentors can accept/reject proposals.
  • Only one proposal per student gets accepted.


Project Tasks:

  • Project has many atomic tasks with ETA.
  • While accepting a proposal, mentor allocates tasks to students with deadlines.

Dashboard

  • A user dashboard having current logged-in users project activities.


The Task

  • Improving User and Projects Dashboard
  • Admin Panel
  • Projects Calender
  • Task Journal
  • Mail reminders
  • FAS Integration
  • Modes (Year-round mode/Summer coding mode)
  • Integration with a code repository.
  • Certificate of Participation.

Tools

Ruby on Rails

Skills

Experience of programming the web.