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.
- Collaborative Recommender System
- Content based Recommender System
- Hybrid Recommender System
- Knowledge based Recommender System
- 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
- 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
- Data Collection and Cleaning
- Fitting a Recommendation Engine
- Deploying on Web-App
Candidates can choose which steps they want to work on
- 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.
- Fitting a Recommendation Engine
- Make your Betal by training on the dataset stored.
- 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)
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.
- Suraj Kumar - (Email- [email protected])
- Anirudh Deep - (Email- [email protected])