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
- 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
- Tasks 1-4 are based on Drupal development
- Tasks 5-8 are based on System Administration and Devops
Create an assignment submission interface using a custom module in Drupal 7.
- 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
- 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 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:
- Create a Github Account or use your existing one.
- Create a new private repository and add "sashi-fossee" as a collaborator to your repository
-
Create a repository "fsf_2020_
", the following files must be present in your repository - Module directories of both the modules
- Individual documentation for each module
- 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
-
Create at least two content types named "Movies" and "Cast"
-
Movies - This content type will have appropriate fields to capture the following data
- Movie name
- Image
- Type (It should be taxonomy term reference)(Eg: Bollywood, Hollywood, etc)
- Genre (It should be taxonomy term reference)(Eg: Action, Comedy, etc)(Multivalued field)
- Release date
- Trailer (Link field [Eg: Youtube] OR File upload video field)
- Budget
- Earnings
- Cast (Entity reference field to "Cast" content type)(Multivalued field)
- Produced by(Entity reference field to "Cast" content type) (Multivalued field)
- Directed by (Entity reference field to "Cast" content type)(Multivalued field)
- Body (Movie synopsis)
-
Cast - This content type will have appropriate fields to capture the following data
- Cast name
- Type (It should be taxonomy term reference)(Eg: Actor, Producer, Musician, etc)(Multivalued field)
- Image
- Movies (Entity reference field to "Movies" content type)(Multivalued field)
- Body (Short information)
-
Content-type Movie news
- Title
- Movie (Entity reference field to "Movies" content type)
- Body (News information)
- Images (Multivalued field)
- Links for news reference (Source of the news)(optional field)
-
Movies - This content type will have appropriate fields to capture the following data
- Create content for at least 10 Movie item with at least two different movie types
- Create content for at least 15 Cast items with at least 5 different cast types
-
Now create at least two views
-
Latest movies with the exposed filter of movie type and genre (This view should be a "grid view" with the following fields)
- Image
- Movie name
- Link to youtube trailer OR display video using any lightbox
- Date of release
- Sort by Date of release
- On the click of the image, it should go to the particular movie node and display all the remaining information
- The view should display at least 6 movie items along with pagination
-
Cast view with the exposed filter of title field for search (This view should be a "grid view" with the following fields)
- Image
- Name
- On the click of the image, it should go to the particular cast node and display all remaining information
- The view should display at least 6 movie items along with pagination
- You can also create a view showing Movie news (List or Grid view)
-
Note:
- 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
- Place the block in the appropriate region and give the suitable title of block
- Please try to get the actual movie information, Try to avoid "dummy data"
- The main menu will have two links for the views above
-
Latest movies with the exposed filter of movie type and genre (This view should be a "grid view" with the following fields)
Technical requirements:
- Drupal 8 site-building
Tutorials/ references:
- https://spoken-tutorial.org/tutorial-search/?search_foss=Drupal&search_language=English
- https://www.drupal.org/docs/8/administering-a-drupal-8-site/managing-content
Procedure to submit:
- 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)
- Choose the installation profile as "standard" while installing Drupal 8
- Click here to submit your task
Evaluation criteria:
The completed tasks will be evaluated on- Content architecture (60%)
- 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.- The theme must be responsive to all devices. (You can use the bootstrap framework)
- Basic regions (layout) should be properly defined and put in the template.
- Design template for at least "basic page" content type
Technical Requirements:
- HTML5/CSS3
- Bootstrap CSS
- Twig templating system
- Drupal 8 theming
- GitHub.org account
Tutorials/ references:
Procedure to Submit:
- Create a Github Account or use your existing one
- Create a new private repository and add "tejasvaidya01" as a collaborator to your repository
- Create a repository "fsf_2020_
", the following files must be present in your repository - .info.yml
- .theme
- Logo.svg
- JS directory
- CSS directory
- Templates directory
- Readme file (Documentation)
- Click here to submit the Github repository link
- Note: Submissions with public repositories will not be considered
Evaluation criteria:
The completed tasks will be evaluated on
- Proper region definition and placement of regions in twig
- Coding standard as per https://www.drupal.org/docs/8/theming
- Design and functionality of the theme
Task details:
- Create a sample website for your college/ university
-
Add the following content types with appropriate fields given to each
-
Degree - This content type will have appropriate fields to capture the following data
- Title
- Details about course
- Images
- PDF brochures
- Degree type (UG, PG, PhD., etc.)
- Department (Computer science, Mechanical, etc.)
-
Degree - This content type will have appropriate fields to capture the following data
Note: Degree type, Department will be of taxonomy type
- Subject - This content type will have appropriate fields to capture the following data
- Title
- Degree (This field will have reference to "Degree" content type)
- Year (01,02,03, etc.)
- Syllabus (PDF upload)
- Details
Note: Year will be of taxonomy type
- Faculty - This content type will have appropriate fields to capture the following data
- Full name (Title)
- Contact details
- Department (Computer science, Mechanical, etc.)
- Faculty type
- Subject (This field will have reference to "Subject" content type) (Multivalue)
Note: Department will be of taxonomy type
- Student - This content type will have appropriate fields to capture the following data
- Full name (Title)
- Email id (optional)
- Registration no.
- Academic year (Eg: 2013-14)
- Degree name (This field will have reference to "Degree" content type)
- Year (01,02,03, etc)
- Division (Eg: A1, A2, B1, etc.) (optional)
Note: Year will be of taxonomy type
- Static pages: Make other static pages like about the institute, history, facilities, etc. and provide a link on the main navigation
- Create the following view
- Degree:
- 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
- And clicking on the name of the image of the courses will go to the "degree details" page
- Student list:
- It should display the list of students in tabular format and the title should link to the student "details page"
- Admin can filter the student by Degree name, year and division
- Student name should be searchable
- Faculty list:
- It should display the list of Faculty in tabular format and title should link to faculty "details page"
- User can filter the faculty by Department
- Faculty name should be searchable
- Degree:
Technical requirements:
- Drupal 8 site-building
Procedure to Submit:
- 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)
- Choose the installation profile as "standard" while installing Drupal 8
- The candidate must share the link to their created site
Evaluation criteria:
The completed tasks will be evaluated on
- Proper content architecture
- The functionality of views and pages
Task Details:
- 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:
- 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
- Maintain a step by step procedure of the above task
- Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Staytus.credentials.txt
- Document all work in RST/Tex format as Staytus.rst or Staytus.tex
- Create an archive comprising both the files with .zip extension and upload here
Evaluation Criteria:
- Documentation that can be understood and readable by people new to the Software and the Platform
- Quality and readability of code
- No Plagiarism
Task Details:
- 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:
- 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
- Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Captcha.credentials.txt
- Document all work in RST/Tex format as Captcha.rst or Captcha.tex.
- Create an archive comprising both the files with .zip extension and upload here
Evaluation Criteria:
- Documentation that can be understood and readable by people new to the Software and the Platform
- Quality and readability of code
- No Plagiarism
Task Details:
- 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:
- 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
- Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Grafana.credentials.txt
- Document all work in RST/Tex format as Grafana.rst or Grafana.tex
- Create an archive comprising both the files with .zip extension and upload here
Evaluation Criteria:
- Documentation that can be understood and readable by people new to the Software and the Platform
- Quality and readability of code
- No Plagiarism
Task Details:
- Installing CentOS 7 and 8 on two DigitalOcean droplets
- Installing Mailman 2 on CentOS 7 with a single list and 3 users
- 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:
- 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
- Create an account mentor on the droplet with sudo access and put the credentials, IP/hostname in a file named Mailman.credentials.txt
- Document all work in RST/Tex format as Mailman.rst or Mailman.tex
- Create an archive comprising both the files with .zip extension and upload here
Evaluation Criteria:
- Documentation that can be understood and readable by people new to the Software and the Platform
- Quality and readability of code
- 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"