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 & Div 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, timememory spent, contests it was used in
UsersTeams: Screen names, location city country organization, contributions, friends, registration duration, problems solved, and streak of consecutive days active.
Deliverables:
EntityRelationship 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 programming languages by speed and memory efficiency.
Show top users by days active, problems solved, and overall contest scores.
Show top organizations by user ratings in Div. & contests.
Top 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, commandline for the application. Bonus points for a webbased or GUI app.
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
