Spoken Tutorial Event Logs and Analytics System

REGISTRATION

  • The registration for FOSSEE Summer Fellowship 2020 starts on 1 January 2020.
  • The link for registration is available here
  • The complete list of projects/topics under FOSSEE Summer Fellowship 2020 is listed here

 

IMPORTANT DATES

Click here to know the important dates.

 

Screening Task: Spoken Tutorial Event Logs

Create an Event Logging system that captures and logs all request that comes to the server. Events are basically web server HTTP requests made by users.

1. Create a Basic Django view that renders a home page. The home page can be dynamically generated or it can be just a static page.

2. Create a Django Middleware that captures any request that comes to Home page URL and log the request in a JSON file.

     The log file should contain

  • The username of the user who is making the request. If anonymous keep empty.
  •  The IP address of the user.
  •  The browser info of the request.
  • The location of the IP address if available.
  • Timestamps
  • Any insensitive info available in GET and POST objects.

 

An example log JSON object will look something like this.

     {

     "path_info": "/homepage",

     "browser_info": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0",

     "request_data": {},

     "method": "GET",

     "event_name": "home_page",

     "visited_by": "spokenuser",

     "location": "Mumbai",

     "ipaddress": "10.129.36.24",

"date": "25/11/2019"

     }

3. Create a simple visualization page that shows the total number of Home page loads. The page should provide a facility to filter the requests based on per day/week/year or location if available.

 

Please Note: Understanding Django request and response cycle is very important for completing this task.

 

Technologies to be used:

Python, Django.

 

Submission:

  1. Perform all the tasks mentioned above.
  2. Create a Github Account or Use your existing one.
  3. Create a new private repository in your Github Account for task 
  4. Submit your GitHub link on moodle


Evaluation Criteria:

 

Following criteria will be considered while evaluating the tasks:

  • The simplicity of the code
  • Comments for each block or function written
  • Accuracy of results obtained
  • Documentation should be readable and understandable
  • No plagiarism (if your submission matches another student's submission, both will be rejected)

Once your submission is shortlisted, we will administer a Python test which you will need to clear.  Only then will you be selected for the fellowship with us.


6-weeks Fellowship task:

Create a Spoken Tutorial Analytics System for capturing and visualizing log events. The system should be able to analyse and create meaningful insights from the events.

Create a system-level visualization dashboard that shows the number of page loads for each page, the number of requests made by both authenticated and anonymous users, etc.

A System-level alert notification if there is high traffic on certain pages in the system.

Create an admin and user level visualization dashboard for Spoken Tutorial system that shows useful user activities and insights. The system should be able to integrate with an open-source log pipeline, a search engine and an analytics system.

 

A Django Log Middleware,  Elastic Stack(Elasticsearch, Logstash, Kibana) and Apache Kafka will be used for implementing the system.

 

Technologies to use: Python, Django.