FOSSEE Summer Fellowship 2020 - Web Development

Please keep visiting this page for updates
Last updated on 01 April 2020

Due to the outbreak of COVID-19 and travel restrictions placed by IIT Bombay, the FOSSEE Summer Fellowship 2020 will be offered remotely. The FOSSEE team will contact the selected candidates through emails soon.


General instructions

  1. At any given time participants are allowed to work on two screening tasks. But we recommend you to focus on one screening task and complete it successfully
  2. Tasks 1-4 are based on Drupal development
  3. Tasks 5-8 are based on System Administration and Devops

Create an assignment submission interface using a custom module in Drupal 7.

  1. The teacher interface should contain
    • A form to manage the file formats
    • a view to display the submissions of all the students.
    • form to give comments on the submissions and rate them
  2. The student interface should contain a form for the student to
    • Enter his student id
    • Upload the assignment file in the format specified by the teacher
      • The path of the uploaded assignment file must be in the following hierarchy: //
    • The student should be able to view and edit the submission i.e., modify the file

After developing the module using Drupal 7, migrate it to Drupal 8

Technical Requirements:

  • PHP, Drupal 7/8 CMS, Knowledge of Drupal module development, OOPs concepts
  • HTML, CSS
  • JQUERY, Javascript
  • MYSQL, Linux

Procedure to Submit:

  1. Create a Github Account or use your existing one.
  2. Create a new private repository and add "sashi-fossee" as a collaborator to your repository
  3. Create a repository "fsf_2020_", the following files must be present in your repository
    1. Module directories of both the modules
    2. Individual documentation for each module
  4. Click here to submit your GitHub repository link

Note: Submissions with public repositories will not be considered.

Evaluation Criteria:

Following criteria will be considered while evaluating this implementation:

  • Complexity and Quality of Code
  • Quality and Extent of Test Cases
  • Documentation

Task details:

Create a Drupal 8 site for movie database with following specification/functionality

  1. Create at least two content types named "Movies" and "Cast"
    1. Movies - This content type will have appropriate fields to capture the following data
      1. Movie name
      2. Image
      3. Type (It should be taxonomy term reference)(Eg: Bollywood, Hollywood, etc)
      4. Genre (It should be taxonomy term reference)(Eg: Action, Comedy, etc)(Multivalued field)
      5. Release date
      6. Trailer (Link field [Eg: Youtube] OR File upload video field)
      7. Budget
      8. Earnings
      9. Cast (Entity reference field to "Cast" content type)(Multivalued field)
      10. Produced by(Entity reference field to "Cast" content type) (Multivalued field)
      11. Directed by (Entity reference field to "Cast" content type)(Multivalued field)
      12. Body (Movie synopsis)
    2. Cast - This content type will have appropriate fields to capture the following data
      1. Cast name
      2. Type (It should be taxonomy term reference)(Eg: Actor, Producer, Musician, etc)(Multivalued field)
      3. Image
      4. Movies (Entity reference field to "Movies" content type)(Multivalued field)
      5. Body (Short information)
    3. Content-type Movie news
      1. Title
      2. Movie (Entity reference field to "Movies" content type)
      3. Body (News information)
      4. Images (Multivalued field)
      5. Links for news reference (Source of the news)(optional field)
  2. Create content for at least 10 Movie item with at least two different movie types
  3. Create content for at least 15 Cast items with at least 5 different cast types
  4. Now create at least two views
    1. Latest movies with the exposed filter of movie type and genre (This view should be a "grid view" with the following fields)
      1. Image
      2. Movie name
      3. Link to youtube trailer OR display video using any lightbox
      4. Date of release
      5. Sort by Date of release
      6. On the click of the image, it should go to the particular movie node and display all the remaining information
      7. The view should display at least 6 movie items along with pagination
    2. Cast view with the exposed filter of title field for search (This view should be a "grid view" with the following fields)
      1. Image
      2. Name
      3. On the click of the image, it should go to the particular cast node and display all remaining information
      4. The view should display at least 6 movie items along with pagination
    3. You can also create a view showing Movie news (List or Grid view)
    4. Note:
      1. You can create a block view (create blank basic node and place block)(using view type as a block) OR page view(using view type as page) for the above views
      2. Place the block in the appropriate region and give the suitable title of block
      3. Please try to get the actual movie information, Try to avoid "dummy data"
      4. The main menu will have two links for the views above

Technical requirements:

  1. Drupal 8 site-building

Tutorials/ references:

  1. https://spoken-tutorial.org/tutorial-search/?search_foss=Drupal&search_language=English
  2. https://www.drupal.org/docs/8/administering-a-drupal-8-site/managing-content

Procedure to submit:

  1. The screening task should be performed online (by creating a free account in http://pantheon.io[Installation guide https://pantheon.io/docs/create-sites] or any other drupal website service provider)
  2. Choose the installation profile as "standard" while installing Drupal 8
  3. Click here to submit your task

Evaluation criteria:

The completed tasks will be evaluated on
  1. Content architecture (60%)
  2. Functionality of views and pages (40%)

Task details:

Use one of the following themes and convert it to a Drupal 8 theme for a simple one-page site with following specification/ functionality.

  1. http://sciencex.wpmanageninja.com/
  2. https://theme-gavias.com/wp/edubiz/
  1. The theme must be responsive to all devices. (You can use the bootstrap framework)
  2. Basic regions (layout) should be properly defined and put in the template.
  3. Design template for at least "basic page" content type

Technical Requirements:

  1. HTML5/CSS3
  2. Bootstrap CSS
  3. Twig templating system
  4. Drupal 8 theming
  5. GitHub.org account

Tutorials/ references:

  1. https://www.drupal.org/docs/8/theming
  2. https://twig.symfony.com/

Procedure to Submit:

  1. Create a Github Account or use your existing one
  2. Create a new private repository and add "tejasvaidya01" as a collaborator to your repository
  3. Create a repository "fsf_2020_", the following files must be present in your repository
    1. .info.yml
    2. .theme
    3. Logo.svg
    4. JS directory
    5. CSS directory
    6. Templates directory
    7. Readme file (Documentation)
  4. Click here to submit the Github repository link
  5. Note: Submissions with public repositories will not be considered

Evaluation criteria:

The completed tasks will be evaluated on

  1. Proper region definition and placement of regions in twig
  2. Coding standard as per https://www.drupal.org/docs/8/theming
  3. Design and functionality of the theme

Task details:

  1. Create a sample website for your college/ university
  2. Add the following content types with appropriate fields given to each
    1. Degree - This content type will have appropriate fields to capture the following data
      1. Title
      2. Details about course
      3. Images
      4. PDF brochures
      5. Degree type (UG, PG, PhD., etc.)
      6. Department (Computer science, Mechanical, etc.)

Note: Degree type, Department will be of taxonomy type

    1. Subject - This content type will have appropriate fields to capture the following data

      1. Title
      2. Degree (This field will have reference to "Degree" content type)
      3. Year (01,02,03, etc.)
      4. Syllabus (PDF upload)
      5. Details

Note: Year will be of taxonomy type

    1. Faculty - This content type will have appropriate fields to capture the following data

      1. Full name (Title)
      2. Email
      3. Contact details
      4. Department (Computer science, Mechanical, etc.)
      5. Faculty type
      6. Subject (This field will have reference to "Subject" content type) (Multivalue)

Note: Department will be of taxonomy type

    1. Student - This content type will have appropriate fields to capture the following data

      1. Full name (Title)
      2. Email id (optional)
      3. Registration no.
      4. Academic year (Eg: 2013-14)
      5. Degree name (This field will have reference to "Degree" content type)
      6. Year (01,02,03, etc)
      7. Division (Eg: A1, A2, B1, etc.) (optional)

Note: Year will be of taxonomy type

    1. Static pages: Make other static pages like about the institute, history, facilities, etc. and provide a link on the main navigation
  1. Create the following view

    1. Degree:

      1. It will display a list of Degree available in a grid format on the homepage of the site and which can be filtered based on degree type
      2. And clicking on the name of the image of the courses will go to the "degree details" page
    2. Student list:

      1. It should display the list of students in tabular format and the title should link to the student "details page"
      2. Admin can filter the student by Degree name, year and division
      3. Student name should be searchable
    3. Faculty list:

      1. It should display the list of Faculty in tabular format and title should link to faculty "details page"
      2. User can filter the faculty by Department
      3. Faculty name should be searchable

Technical requirements:

  1. Drupal 8 site-building

Procedure to Submit:

  1. The screening task should be performed online (by creating a free account in http://pantheon.io (Installation guide https://pantheon.io/docs/create-sites ) or any other drupal website service provider)
  2. Choose the installation profile as "standard" while installing Drupal 8
  3. The candidate must share the link to their created site

Evaluation criteria:

The completed tasks will be evaluated on

  1. Proper content architecture
  2. The functionality of views and pages

Task Details:

  1. Install CentOS 7 or 8 on a DigitalOcean droplet and install Staytus with a status of 3 sites and email to 3 mail ids on status change

Technical Requirements:

  • Familiarity with HTML 5.CSS,JavaScript
  • Familiarity with Nginx, Apache, and Lighttpd
  • Familiarity with CentOS 7 and 8 or RHEL 7 and 8
  • Familiarity with RST or Latex Document Creation
  • Optional familiarity with Ruby.
  • Optional familiarity with Staytus

Procedure to Submit:

  1. Install/configure the above software on a CentOS 7 or 8 on a DigitalOcean droplet and provide an IP, or better, a hostname. Click here to know about the trial version provided by DigitalOcean
  2. Maintain a step by step procedure of the above task
  3. Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Staytus.credentials.txt
  4. Document all work in RST/Tex format as Staytus.rst or Staytus.tex
  5. Create an archive comprising both the files with .zip extension and upload here

Evaluation Criteria:

  1. Documentation that can be understood and readable by people new to the Software and the Platform
  2. Quality and readability of code
  3. No Plagiarism

Task Details:

  1. Installing CentOS 7 or 8 on a DigitalOcean droplet, installing Nginx with a single page website hidden behind a Captcha page.

Technical Requirements:

  • Familiarity with Ruby,HTML 5.CSS,Javascript
  • Familiarity with Nginx
  • Familiarity with any Webmail interface
  • Familiarity with CentOS 7 and 8 or RHEL 7 and 8
  • Familiarity with RST or Latex Document Creation
  • Familiarity with ReCaptcha
  • Having optional familiarity with the use or installing of Zimbra. Collaboration Suite is an added advantage

Procedure to Submit:

  1. Install the software on a CentOS 7 or 8 on a DigitalOcean droplet and provide an IP, or better, a hostname. Click here to know about the trial version provided by DigitalOcean
  2. Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Captcha.credentials.txt
  3. Document all work in RST/Tex format as Captcha.rst or Captcha.tex.
  4. Create an archive comprising both the files with .zip extension and upload here

Evaluation Criteria:

  1. Documentation that can be understood and readable by people new to the Software and the Platform
  2. Quality and readability of code
  3. No Plagiarism

Task Details:

  1. Installing CentOS 7 or 8 on a DigitalOcean droplet and installing Grafana with a dashboard that shows System load, Memory, and CPU usage.

Technical Requirements:

  • Familiarity with HTML 5.CSS,JavaScript, Go ,MariaDB 10.x
  • Familiarity with Nginx
  • Familiarity with CentOS 7 and 8 or RHEL 7 and 8
  • Familiarity with RST or Latex Document Creation
  • Optional familiarity with Grafana Dashboards

Procedure to Submit:

  1. Install the software on a CentOS 7 or 8 on a DigitalOcean droplet and provide an IP, or better, a hostname. Click here to know about the trial version provided by DigitalOcean
  2. Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Grafana.credentials.txt
  3. Document all work in RST/Tex format as Grafana.rst or Grafana.tex
  4. Create an archive comprising both the files with .zip extension and upload here

Evaluation Criteria:

  1. Documentation that can be understood and readable by people new to the Software and the Platform
  2. Quality and readability of code
  3. No Plagiarism

Task Details:

  1. Installing CentOS 7 and 8 on two DigitalOcean droplets
  2. Installing Mailman 2 on CentOS 7 with a single list and 3 users
  3. Installing Mailman 3.1 on CentOS 8 with a single list and 3 users

Technical Requirements:

  • Familiarity with HTML 5.CSS,JavaScript, Python ,MariaDB 10.x
  • Familiarity with Nginx
  • Familiarity with CentOS 7 and 8 or RHEL 7 and 8
  • Familiarity with RST or Latex Document Creation
  • Familiarity with Python 2.7/3.6
  • Optional familiarity with installing or use Mailman 2.x and 3.1

Procedure to Submit:

  1. Install the software on two CentOS 7 and 8 on a Digital Ocean droplets and provide two IPs, or better, two hostnames. Click here to know about the trial version provided by DigitalOcean
  2. Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Mailman.credentials.txt
  3. Document all work in RST/Tex format as Mailman.rst or Mailman.tex
  4. Create an archive comprising both the files with .zip extension and upload here

Evaluation Criteria:

  1. Documentation that can be understood and readable by people new to the Software and the Platform
  2. Quality and readability of code
  3. No Plagiarism

Contact Us

For any queries, write to us at info[at]fossee[dot]in with the subject line as "FOSSEE Summer Fellowship 2020 - Web Development"