FOSSEE Summer Fellowship 2019

FOSSEE Fellowship 2019

Fellowship Process

Last Updated On: March 12, 2019

Registration:

Please Click here and create a new account to be eligible for the FOSSEE Summer Fellowship selection procedure

Important dates and Result:

Click here to know the important dates.

Important Update: The last date to attempt the Shortlisting Stage - Python Test has been extended till Monday, 18th March, 2019, 23:59

Note:

  1. Candidates registering after 18th March, 2019 will not be considered for selection to the Python Fellowship
  2. Please note that Python Fellowship candidates will only be working on a Single Screening Task that has been split into 2 stages.
  3. The Screening Task - Stage 1 will be available from Tuesday, 19th February, 2019, 17:00 PM to Monday, 18th March, 2019, 23:59
Please note the details of the Screening Tasks for FOSSEE Fellowship provided below

Shortlisting Stage:

Clear the FOSSEE Fellowship Python Test to Qualify for Screening Task - Stage 2
  • Technical Requirements:

    Python, Basic Unix commands
  • Procedure:

  • The test will only be available starting from Tuesday, 19th February, 2019, 17:00 to Monday, 18th March, 2019, 23:59

    1. Go to https://yaksh.fossee.in/exam
    2. Click on New User - Sign Up Button and register using the same Email as used on Moodle
    3. In the Search Course Text box, Type in fsf2019 and click on Search button
    4. You will be able to see the course “FOSSEE PYTHON FELLOWSHIP 2019
    5. Click on the Enroll button beside the Course Name
    6. Click on the Start Button
    7. On the Course Modules Details Page, click on Start beside the First Task - Python Test Module.
    8. On the Module Page, you can start the test by clicking on Green Start Button

    Important Note:

    1. The test can be taken at any time/day between 19-02-2019, 17:00 and 18-03-2019, 23:59
    2. The test has a duration of 45 minutes
    3. The test consists of 7 Questions
    4. Each Question is a Coding Question which you have to answer using Python Code.
    5. Do not attempt to copy, cheat or Google your answers as all submissions are recorded and validated.
    6. The test can only be attempted once, candidates will not be allowed to attempt the Quiz more than once under any circumstances
    7. The Quiz is completely online and hence you are requested to attempt the Quiz while in a comfortable place with good Internet Connection (Issues arising due to Bad Internet Connection will not be entertained)
  • Evaluation Criteria :

    1. Successfully passing the FOSSEE Fellowship Python Test
  • Result Of Shortlisting:

    1. After completing the Python Test, Click Here
    2. Log In (in case you have logged out earlier)
    3. Check the Grade (below FOSSEE PYTHON FELLOWSHIP 2019) that you have received.
    4. If it mentions Passed, you can immediately start attempting any one of the Screening Tasks mentioned below

List of Screening Tasks

Please note that only those candidates who have Passed the Shortlisting Python Quiz are supposed to attempt Any One of the following Screening Tasks:

Technologies/Libraries to use:

  1. Django

  2. Python (if you want to recap you can take this course )

  3. HTML

  4. Javascript (Optional)

  5. Git

Instructions:

  1. Create a Github Account or Use your existing one.

  2. Create a new Repository in your Github Account for this task called fsf_2019_screening_task1

  3. Commit your code at regular intervals by doing small incremental changes to your code (committing huge blobs of code all at once is not recommended).

  4. The steps in “Description” below are general, minimum and mandatory guidelines. You are free to add well-documented features to your application.

  5. Include a file called requirements.txt that lists all the libraries (including Django) and modules/plugins and their versions.

  6. You are not allowed to use pre-built third party Django Apps.

Description:

Create a Task Manager Django App using Django, that does the following:

  1. Authenticate the user

    1. Allow new users to sign up

    2. Allow existing users to sign in

  2. Allow only an authenticated user to create Task

  3. Allow creation of ‘Teams’

    1. Team creator should be able to add other Users to their Teams

  4. Only the Task Creator can edit Tasks that have been created by himself

    1. Other users from the same team can only view and comment on Tasks that were created by another User

  5. A User from another Team cannot view/edit/assign/comment on a Task of a different Team Member.

  6. Creator of Task should be able to assign the Task to one or more Users from his own Team

    1. In case Task Creator does not belong to a team, he himself will always be assigned to his own tasks.

  7. Tasks should have the Fields: Title, Description, Assignee, and Status (Planned, Inprogress, Done etc.)

  8. Each Task should have a comments section where all users in one Team can comment on the Task

  9. An authenticated User can comment on his own tasks (assigned to or created by him) as well as other Tasks of his Team members.

  10. Write Test Cases for your Django App.

Submission:

  1. Create a Github Account or Use your existing one.

  2. Create a new Repository in your Github Account for this task called fsf_2019_screening_task1

  3. Send the Link of your github repository to pythonsupport@fossee.in

Evaluation:

  1. Availability, Accuracy and Clarity of Documentation

  2. Quality and Extent of Test Cases

  3. Quality of Code

  4. Adherence to Coding Standards (For example - Code must be Pythonic and follow PEP8 standards)

  5. The User Experience and Flow (please note the difference between UI and UX)

Technologies/Libraries to use:

  1. Python

  2. PyQt/Kivy

Instructions:

  1. Create a Github Account or Use your existing one.

  2. Create a new Repository in your Github Account for this task called fsf_2019_screening_task2

  3. Commit your code at regular intervals by doing small incremental changes to your code (committing huge blobs of code all at once is not recommended).

  4. The steps in “Description” below are general, minimum and mandatory guidelines. You are free to add well-documented features to your application.

Description:

Following functionalities should be present in the application.

User should be able to:

  1. Load a csv file using ‘Load’ option available under “File” menu

  2. Display the complete data from the loaded csv as a table

  3. Edit the existing data in the table using the ‘Edit data’ option under the “Edit” menu.

  4. Add new data to the table using ‘Add data’ option under “File” menu.

  5. Select any number of columns from the displayed table

  6. Plot the data from any two selected columns should be available as buttons as mentioned below:

    1. Plot scatter points

    2. Plot scatter points with smooth lines

    3. Plot lines

  7. Click on any of the plot button. Plot should be generated accordingly in a new tab.

  8. Label x-axis and y-axis accordingly.

  9. Add a title to the graph.

  10. Save the plot as .png file using ‘Save as png’ option under “File” menu.

Submission:

  1. Create a Github Account or Use your existing one.

  2. Create a new Repository in your Github Account for this task called fsf_2019_screening_task2

  3. Send the Link of your github repository to contact-om[at]fossee[dot]in

Task:

Develop a desktop application for;

  1. Displaying the properties of the steel section from the given database.

  2. Appending properties of new steel section(s) to the current database.

Description of Task:

  1. A database (SQL) of steel section(s) is given in a tabular format (2nd point in ‘Procedure to complete the task’ below). The typical steel sections include, I, Angle, Channel sections. (The properties of the steel sections is provided by the Indian Standard, IS 808:1989)

  2. Develop a desktop application with a GUI (preferably using PyQt). You have to use the MVC pattern for the application architecture and concepts of Object-Oriented Programming (OOP) in the project.

  3. The functionality of the desktop application will be as follows;

    1. To display a list of steel sections currently available in the database (steel_sections.sqlite). (The sections can be designated by the ‘designation’ available in the steel section database)

    2. Once the user selects the designated steel section, all the properties related to that steel section should be displayed in the GUI in an appropriate order.

    3. If the user wishes to add/append a particular section data to the database he should be able to define the section (designation) and other relevant properties in an appropriate manner. (It is important that the section properties are appended in a correct sequence to the database). A sample data of the new steel sections are given in the ‘new_sections.xlsx’ file.

    4. Example:

      1. The file where data needs to be appended steel_sections.sqlite

      2. The file from which data needs to be picked for appending new_sections.xlsx

      3. For example, If you want to append the data of Id number 17 from the ‘new_sections.xlsx’ (MB 550) to the ‘steel_sections.sqlite’ file, then the resulting file should look like this (all the data related to MB 550 is appended appropriately, see Id number 10)

    5. An easy to use, user-friendly and clean looking GUI application would help the user to quickly adapt to the application.

  4. Create an installer (Windows or Ubuntu) for your application.

Procedure to complete the task:

  1. Read the task description carefully. If you have any discrepancy regarding the task please send us an email at contact-osdag[at]fossee[dot]in
  2. Clone this repository for the steel sections database.

  3. Start working on the project as per the description mentioned above. You have to maintain your project on a version control system.

Submission:

  1. Create a Github Account or Use your existing one.

  2. Create a new repository in your Github Account for this task called fsf_2019_screening_task3

  3. Send the Link of your github repository to contact-osdag[at]fossee[dot]in with the subject 'GitHub link: FSF 2019 Screening Task 3'

Description of Task:

  • Your objective is to port the code on branch “fellowship2019” to Python version 3.x for Ubuntu 16.04.

  • Functionality of your code should be the same as that of the code on fellowship2019.

Procedure:

  1. Create a Github Account or use your existing one.

  2. You will use fellowship2019 as reference, install it on your system by watching the Spoken Tutorial.

  3. Fork the repository fellowship2019-python3 to your Github account.

  4. Make changes to the fork of fellowship2019-python3 on your Github account in order to port it to Python 3.x.

Before You Submit:

You should self-verify the task before submitting your final work to us.

  1. Run python Application.py for the branch fellowship2019.

  2. Run python3 Application.py for your modified fork of the branch fellowship2019.

  3. The results for the above two steps should be the same :

    1. Watch Spoken Tutorials of eSim, in order to understand how to use eSim.

    2. Launch application from terminal

      1. cd src/frontEnd/-> run python3 Application.py for your code; and

      2. cd src/frontEnd/-> run python Application.py for reference code.

    3. Application should launch without any discrepancies after changes as demonstrated in the Spoken Tutorial.

    4. New project creation should not produce errors and adhere to the naming conventions.

    5. Dependent applications (keep the same versions of kicad and ngspice mentioned in install-linux.sh) should launch wherever required(kicad when editing schematics, ngspice when simulations are to be carried out).

    6. Ngspice plots and python plots should appear when simulations are performed for examples provided [Illustrated in Spoken Tutorial]. Choose any example of your preference for testing your code.

Submission:

Send the link of your github fork to contact-esim[at]fossee[dot]in with subject “FSF_2019_Python_eSim”.

Evaluation:

  1. Accuracy of your code compared to the existing one.

  2. Quality of documentation.

  3. Adherence to Coding Standards (For example - Code must be Pythonic and follow PEP8 standards).

  4. The User Experience.

Note : You can get in touch with us by sending a mail with subject “FSF_2019_Python_eSim” to contact-esim[at]fossee[dot]in and report your queries regarding this particular task, if any. Additional reference link.

Contact Details:

In case of any queries, please check relevant task for contact details, in case there is no contact provided within the task or in case of general queries please drop us an email on info[at]fossee[dot]in

Sponsored by:
National Mission on Education through ICT
MoE
http://www.sakshat.ac.in
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Creative Commons License