From Fedora Project Wiki

No edit summary
 
Line 12: Line 12:
| Get familiar with python, learn Fedora python APIs, write unit tests
| Get familiar with python, learn Fedora python APIs, write unit tests
|-
|-
| 389 Directory Server: developing administrative tools
| William Brown (UTC+10)(#389 wibrown, wibrown at redhat dot com)
| 389 Directory Server is an enterprise class LDAP server, used in businesses globally to authenticate and identify people.


We are working hard to improve our usability and accessibility to the server, especially in how the server is administered. Historically LDAP was difficult and arcane to manage, but we want to change this.
Your project would be to help us improve our python command line tools. Our framework already has the base classes designed and written, but we need help to knit together the high level administrative functionality.
From this project you will learn:
* How to integrate and use existing python frameworks and servers.
* How to work with a geographically distributed team.
* Engineering principles expected of a project with high quality demands.
* Use of git and ticket trackers for a project.
* How to contribute to mailing lists and the review process.
What we want to help you with:
* To teach good community and engineering skills
* To give you access to a mentor who will answer your questions.
Requirements:
* Basic python (classes, objects)
* Basic git (pull, commit)
* Optional: basic C
Is this project right for you?
* If you have any questions at all, please contact William about this project.
| During the application process we would ask you to join our #389 irc, and 389-devel mailing list. Please remember I am in UTC+10 so I may not respond immediately.
The tasks would be to setup an instance of Directory Server and to start asking us questions. We understand that new projects are often daunting, and large codebases like ours especially so. We want to help you feel familiar with the codebase, but also start to understand identity management systems and how we want to make them more accessible. More specifically:
* Read the fedora [https://getfedora.org/code-of-conduct COC]
* Apply for a [https://admin.fedoraproject.org/accounts fedora account system login]
* Join our IRC/[https://lists.fedoraproject.org/admin/lists/389-devel.lists.fedoraproject.org/ Mailing list]
* [http://www.port389.org/docs/389ds/contributing.html#building-the-project Install 389 Directory Server], and setup an instance
* Start to try to [http://www.port389.org/docs/389ds/howto/howto-users-and-groups.html configure the directory server instance]
* Create a virtual machine and have the machine [http://www.port389.org/docs/389ds/howto/howto-sssd.html resolve user ids] from the directory instance
Throughout the process we encourage you to contact William with any questions you have - he can provide you with documentation and assistance with these steps, we don't expect you to work it out on your own.
| The projects tasks would be to improve the dsconf and dsidm command line tools. Here is an example of one of the functions being added to the server by a past student.
* [https://pagure.io/lib389/issue/31 memberof support example]
* [https://iliaswrites.wordpress.com/2017/08/23/final-gsoc-2017-report/ gsoc 2017 student report]
This is the list of [https://pagure.io/lib389/issues?status=Open&search_pattern=dsconf open dsconf tasks] which you could choose to implement.
Once you have completed some of these, we can expand the scope of the project to match your interests. Some other areas include:
* performance enhancements
* security and fuzzing
* python web admin
* plugin and feature design
|}
|}

Latest revision as of 01:00, 28 September 2017

Thanks for your interest in Outreachy. Please add your project ideas here. We are looking for projects that are strongly tied to Fedora or Fedora objectives in some way (e.g. Modularity, CI) but all projects will be considered. The most successful projects have a well defined scope with sub tasks where the intern can do work and get feedback.

Potential Project List

Project Mentor(s) Brief overview of project Example of application task Example of subtasks for the project
Sample Fedora Fedora Mentorer Make Fedora a better project Fix bugs labeled easy fix in tracker (bug 123 and 456 as examples) Get familiar with python, learn Fedora python APIs, write unit tests