#37 Outreachy project - Improve External Bugs and Links pages in FAF
Closed Opened by mmarusak.

This is a proposed project for Outreachy.

  • Improve External Bugs and Links pages in FAF

-- This assessment aims to improve a page in web service that collect reports from Fedora machines. It is not possible or very hard for users to accomplish some task and this project aims to change it. This task should implement 3 interconnected upstream issues, related to navigating across pages (back button for specific cases) and removing already associated external resources (users may add external links, but then it is not possible to remove such links).

  • FAF is a web service (live public instance https://retrace.fedoraproject.org/faf/summary/) written in Python, which is part of ABRT stack. ABRT collects problems (mostly meaning crashed programs) and enables users to report them to different places. FAF collects anonymous reports, so maintainers can see how stable they components are.

  • License of the project: GNU General Public License v3.0

  • Longevity (How long has the team accepted contributions): Initial commit is 7 years old, but maybe I don't get the question

  • Community size: We would like to have a bigger one :) (currently 2-3 developers, around 3 community users that are active)

  • How will this project benefit Fedora: Fedora users are complaining about some usability issues, implementing this project would help users to accomplish some tasks they have not been able to.

  • Sample plan of work for the 12 week internship. What are milestones the
    intern should be hitting? This doesn't need to be incredibly detailed and
    can change later but there needs to be a general breakdown of tasks.

  • Get to know FAF, ABRT, be able to compile and run FAF (can be done very simply in a container), understand the task and basics of how FAF works. Short introduction into git if needed.
  • Learn about HTML, CSS, Patternfly (bootstrap). Try basics of web developing and learn how to debug and experiment efficiently while creating web pages.
  • Understand frontend part of code, suggest and discuss how the frontend can be changed to accomplis this task. Start implementing frontend changes.
  • Frontend should be implemented.
  • Learn about databases (postgresql), learn basics about working with DB (we use sqlalchemy, probably focus only on that part, not raw SQL)
  • Learn about backend part of code (the one that needs to be modified) and learn how communication works between frontend and backend.
  • Start implementing backend
  • Finish implementing backend
  • Polish the code, understand how tests work and start working on tests for the new functionality.
  • Finish tests and create upstream pull-request.
  • Fix PR as needed based on review.
  • Final tweaks, PR should be accepted.

  • Benefits to intern (What will the intern get out of this internship): Intern should learn (or get better if already knows) the whole stack in web service development from HTML, CSS, JS, through Python (Flask, thankfully no JS frameworks) to DB. Also should learn git, basics of (the joy of) developing on Linux and get opportunity to contribute into opensource project.

  • Project website:
    public live instance: https://retrace.fedoraproject.org/faf/summary/
    ABRT overview: https://retrace.fedoraproject.org/

  • Project repo:
    https://github.com/abrt/faf

  • Where can an applicant find application tasks?
    https://github.com/abrt/faf/issues/491 - Add back button. On page with reports, user may click on "associate bug", which takes user from page with report to page for adding new bugzillas to this report. From this page it is not possible to go back to the given report (assume, that somebody send you URL for this association). Simple "Back to report XYZ", where XYZ is clickable number of report should be enough. Should not require editing backend (maybe a bit, but can be solved with a little bit of pure JS), very simple frontend modification. Good for getting to know how to work on FAF, how to work with git and how to create the first PR.
    https://github.com/abrt/faf/issues/495 - This issue requests implementing possibility to remove already associated URLs (user may add to report an URL, that he/she thinks is relevant, but it may not be relevant, so it should be possible to remove such URL) . Current implementation provides list of all such URLs, it is needed to add some buttons (ideally with trash can) next to URLs for removing it. Ideally with pop-up window asking if the user is sure. Backend part should remove link between report and given URL (link table) and if the URL is not used in any other report, then the URL should be removed from DB as well.
    https://github.com/abrt/faf/issues/599 - same as #495, but with bugzillas (There are some differences, such as that for managing bugzillas there is separated page, which needs to be redisigned a bit or that removing BZ from DB is a bit different but in theory, it should be very similar to #495)

  • IRC
    #abrt at freenode (I am mmarusak there or at #fedora-devel)

  • Skills required including what level and if they are optional
    (e.g. Python Intermediate, CSS beginner, we'll teach you Puppet):
    Python, HTML, CSS Intermediate.
    JS, SQL begginer
    Knowledge of git is plus.
    At least basic work with Linux is must.

  • Outreachy applicants are required to make a contribution as part of the
    application. What is the process for making a contribution?
    Create proper (functional, covered with tests, follow code style, proper commits) PR and send it to upstream.

Questions from the top level Outreachy Program for the mentor application:

  • How long have you been contributing to the community:
    Been working as main developer of FAF for more than two years.

  • What is your current role
    Main developer

  • Have you mentored for a three-month internship program before
    I've mentored one student before.

  • Have you read the mentor page and understand the process of being a mentor
    Yes

  • Are you available for 5 hours a week during the internship period
    Yes

  • Are you available for 5-10 hours a week during the application period
    Yes

  • Are you aware you need to sign a mentor contract
    I am now :)


Metadata Update from @labbott:
- Issue tagged with: Outreachy

I think the applicant tasks need to be more specific. Can you clarify the problem statements and add more description about what exactly needs to be completed?

@labbott I've updated the proposal. Hope I got what you were asking for and the proposal is clearer now. If not, please let me know.

this looks better. Can you submit your project to the official outreachy system https://www.outreachy.org/communities/cfp/fedora/

Reminder about putting this in the system (the deadline is approach fast)

Sorry for the delay, I was on PTO

https://www.outreachy.org/communities/cfp/fedora/project/improve-external-bugs-and-links-pages-in-faf/

Thanks, I approved the project. The round opens next week so you'll start hearing from applicants then. I'm going to close this ticket.

Metadata Update from @labbott:
- Issue status updated to: Closed (was: Open)

Metadata