pcon-jsr / Betal-Code

Betal-Code is a web application which aims at recommending new and interesting coding problems to it's user(Vikram) and the process continues.... ;p

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Betal-Code

Betal-Code is a web application which aims at recommending new and interesting coding problems to it's user(Vikram) and the process continues.... ;p

Switching to the next problem after submitting a code is not a big task but doing that to an adequate problem is difficult. To know about a problem's tags, difficulty and other user's review, and then select it to solve is a tough task, hence we solve questions randomly. How about letting a machine do this job for us!!

The task is to create a Betal which never stops recommending adequate problems to it's Vikram and each time the problems get better. Multiple types of recommendation engines will operate in Betal-Code and Vikram can choose which type of recommedation to take.

Systems available to use for recommendation

  • Collaborative Recommender System
  • Content based Recommender System
  • Hybrid Recommender System
  • Knowledge based Recommender System

Machine Learning Techniques available to Build Recommendation Engine

  • k-nearest neighbours approach
  • Association Rules appraoch
  • Matrix Factorisation approach
  • Deep NeuralNetworks approach

Any other techniques or systems are welcome as feature requests in Issues

Prerequisites

  • Machine Learning(Knowledge of Recommender System is enough)
  • Web-App Development(Django is preferred)

Prior Knowledge of above prerequisites is not mandatory and can be learnt while development. Mentors can also help you out

To make this project possible we will use Codeforces Api

Steps for Betal-Code development

  1. Data Collection and Cleaning
  2. Fitting a Recommendation Engine
  3. Deploying on Web-App

Candidates can choose which steps they want to work on

  1. Data Colection and Cleaning
    • Keeping in mind the data available at the codeforces api and the recommendation engine choosed, appropriate data is fetched, cleaned and stored in form of csv or xls.
  2. Fitting a Recommendation Engine
    • Make your Betal by training on the dataset stored.
  3. Deploying on Web-App
    • Deploy the trained engine on a web-app that asks it's user for sufficient information and then recommend problems and also takes feedback for the recommended problems and then use this data to improve further recommendations.(For example, a collaborative system would require it's user to provide thier codeforces username and then recommend)

Contribution

You can contact mentors regarding your visualisation and techniques to solve the problem and for contribution to this project. You can make pull requests if you want to contribute.

Mentors

About

Betal-Code is a web application which aims at recommending new and interesting coding problems to it's user(Vikram) and the process continues.... ;p