From Fedora Project Wiki

GSOC 2014 -Student application

Information

  • Name: Jovanka Gulicoska
  • Email: jovanka.gulicoskaATgmail.com
  • IRC: gulic
  • GPG key:
  • Fedora Account: gulic

Project: Fedora College

The main idea of Fedora College is creating a website that will help and teach newcomers how to become part of some Fedora project. Fedora-College will offer videos for various Fedora project through which new contributors will learn what to do next.

Home page

  • Description:

Index page of the website. This page contains information about the project, how to use it. how to contribute to it, how to make it better.

  • Features:

-slider for the front page
-about page
-how to page

  • Design:

https://www.dropbox.com/s/482n8uyea8qdcl8/frontpage.png

User page / User dashboard

  • Description:

The user dashboard is the main and the most important part of the project. This is the place from where the user can watch videos, comment and ask for help. The user dashboard will display latest videos that are added to the site, latest comments and most popular videos. This way we can also get the idea where newcomers struggle the most and provide more resources that can help them get involved. User dashboard in a way can be divided into few important parts:

  • section (role) view (list all available roles)
  • projects in section
  • project page

The section view displays roles from which user can choose. This view helps the user to choose the right role for him, where and how he sees himself. This page will contain a short intro about each role.

There will be pages for each role. On this page the user can read a information about the role, what he needs to know to get involved with the projects associated with that role. The list of projects that are available for a particular role, will be listed with an icon and a short description of the project.

The project page is the page where the videos will be displayed. This page will contain information about the project, like irc channel, mailing list, contact information and a list of videos available for that projects.


  • Features:

- watch videos - make role, project favorite, so when user logs in again he gets the latest comments and activity for that role/page
- with making one role/project favorite user can get an email notification about comments, new videos or similar news
- comment
- write feedback/rank the video tutorial
- ask and answer questions of other user on a specific subject

  • Design:

The mockups are inspired from https://fedoraproject.org/en/join-fedora Links to some mockups: https://www.dropbox.com/s/criwvbkt1kipfzb/user_home_page.png https://www.dropbox.com/s/1jvohltx510onzg/section_page%281%29.png https://www.dropbox.com/s/9kfl97kzjqg57yb/project_page.png

  • Note I’m not a designer :)

Admin page

  • Description:

The admin user page will display comments, videos that need to be approved and added to a certain project.

  • Features:

- upload videos
- change content of pages

Other features of the website should be discussed with mentor.

Development and implementation

Fedora-College is written in Flask with PostgreSQL database. For the design of the templates we can use Flask-Jinja and Flask-WTF for the forms that will be created for commenting, writing feedback, rating etc. I would also like to make the site multilingual. For that we can use Flask-Babel. The generated .po file can be one of the tasks for the new users that want to contribute to translation team.

My latest project is written in Flask and PostgreSQL, so I think that I won't face any difficulties during development and implementation of this project.

Timeline

before 19 May:

  • continuous communication with mentor
  • discussions about needed functionality
  • discussion and design of mockups
  • define structure of the database

19 May - 1 June:

  • start to work on implementation of Index page
  • setting up initial database structure, define needed trigers
  • working on the initial functionality and design needed for the website

2 June - 15 June:

  • work on User Dashboard
  • testing the implemented code

16 June - 29 June:

  • adding new functionalists to User Dashboard
  • start to work on Admin
  • midterm evaluation

30 June - 13 July:

  • finishing work on Admin page
  • discuss what else needs to be done in User Dashboard
  • add sending email notifications to users

14 July - 27 July:

  • adding multilingual functionality
  • testing

28 July - 10 August:

  • fixing bugs
  • adding other functionality

Till 18 August:

  • fixing bugs
  • making final changes
      • The implementation of every functionality during the development process will be consulted with the mentor, and if needed there can be changes to the plan, so that we can get the desired features for the project by the end of the program.