Question: This assignment involves building a database application to gather and present information about competitive programming problem sets, contests, users, and teams, primarily from Codeforces. The

This assignment involves building a database application to gather and present information about competitive programming problem sets, contests, users, and teams, primarily from Codeforces. The goal is to provide enhanced filtering and aggregation features not available on Codeforces.
Milestone I: Data Requirements
Design a database system that stores comprehensive information about:
Contests: Name, date, division (Div.1 & Div.2), writers, registered participants, final standings, and problem sets used.
Problem Sets: Name, tags (fields of computer science), time and memory limits, and users who attempted them (verdict, language, time/memory spent, contests it was used in).
Users/Teams: Screen names, location (city, country), organization, contributions, friends, registration duration, problems solved, and streak of consecutive days active.
Deliverables:
Entity-Relationship Diagram (ERD)
Relational model
SQL scripts to create the database and schema in MySQL
Milestone II: Web Crawling and Data Population
Create a web crawler to gather data from Codeforces or use the available API to populate your database with the required data:
Contests, problem sets, and user information.
Bonus: Include the problem descriptions, inputs, and outputs in the crawl.
Deliverables:
Crawling script
Populated MySQL database dump
CSV files for each table's data
Milestone III: Application Layer
Build a client application that connects to a remote MySQL database and provides features like:
User login (using screen name) to view attempted problems and contest participation.
Display all contests where a user was a writer.
Show problem sets by tag.
Display top 5 programming languages by speed and memory efficiency.
Show top 10 users by days active, problems solved, and overall contest scores.
Show top 5 organizations by user ratings in Div. 1 & 2 contests.
Top 5 attempted problem sets by users from Egypt.
Deliverables:
Application source code and executable
Latest database dump
Tools: MySQL for the database, Python (Scrapy, BeautifulSoup, Selenium) for web crawling, and any platform (web, GUI, command-line) for the application. Bonus points for a web-based or GUI app.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!