As part of a four-person student team for a college project, we built a prototype website for a business client. The client requested a site with similar functionality, look, and feel to Kaggle.com. We built this as part of the college’s software engineering course.
Description
Our goal was to enable users to host and participate in data analysis competitions. The main requirement was displaying a dynamic list of all competitions on Datadocket, including past, current, and upcoming competitions. Then, we needed to enable users to join competitions and upload solutions.
Users could also create (host) competitions by uploading datasets, descriptions, and objectives. Optionally, hosts could select premium features to generate revenue for our clients.
Rewards were provided for users who submitted the best solutions on any competition. This was determined by hosts, who add points to each competitor’s overall score.
Sample Data
FURPS+ Requirements
This table was used to summarize the major requirements at a high level. Each requirement was categorized according to the FURPS+ method and prioritized according to importance and necessity. Items that were considered low priority or ‘Nice to Have’ were to be built in a later project phase.

Use Case Diagram
Our use case diagram illustrated the actions that could be taken by standard users and admin users. Any user could function as both a contestant or a host for a competition.

Sample Entity Relationship Diagram
We created a rough draft of the data models as an ERD. The relationship cardinality was not correct, but this still provided a good overview of our entities.

Highlights
Real-world Application
From the beginning, this project was focused on building a solution for a real-world client. We met with business professionals from the local community on a weekly basis, gathered requirements and feedback, and iterated on our designs.
MVC in Python Django
We used Python’s Django framework to build a full-stack, model-view-controller application. Knowledge sharing was critical to the success of the project.
Git and Github
This was my first time using Git with teammates, and thanks to their patient explanations I began to grasp the basics of branches, pull requests, merges, and conflicts.
Technologies Used
- Python Django
- Git & Github
- Azure Blob Storage
- System Analysis & Design
- PostgreSQL (on Azure)
- Visual Studio Code
- Microsoft Teams (for meeting with the clients)