You are on page 1of 12

MINI PROJECT REPORT

on

Open-Source Contribution on
Competitive Programming Bot

By

120A3025 Himani Mali

120A3029 Devang Mulye

120A3035 Parakh Pawar

UNDER THE GUIDANCE OF

Prof. Poornima S

SUBMITTED IN PARTIAL FULFILLMENT FOR THE DEGREE OF


BACHELOR OF ENGINEERING
In

Information Technology

DEPARTMENT OF INFORMATION TECHNOLOGY

SIES GRADUATE SCHOOL OF TECHNOLOGY

NERUL, NAVI MUMBAI – 400706

ACADEMIC YEAR 2023– 2024


CERTIFICATE

This is to certify that this is a bonafide record of Mini Project of the project
titled “OpenSource Contribution to Competitive Programming Bot
Repository” carried out by the following students of Fourth year in
Information Technology.

Sr. No. Name Roll No.

1. Himani Mali 120A3025

2. Devang Mulye 120A3029

3. Parakh Pawar 120A3035

The report is submitted in partial fulfilment of the degree course of Bachelor


of Engineering in Information Technology, of University of Mumbai during
the academic year 2023-24

Internal Guide Head of Department Principal


Prof. Poornima Ms. Seema Redekar Dr. Lakshmi Sudha

We have examined this report as per University requirements at SIES


Graduate School of
Technology, Nerul (E), Navi Mumbai on .

Name of External Examiner:

Signature with Date:

Name of Internal Examiner:

Signature with Date:


ACKNOWLEDGEMENT

We wish to express our deep sense of gratitude to thank our project guide
Prof. Poornima for providing timely assistance to our query and guidance.
We take this opportunity to thank our HOD Ms. Seema Redekar and
Principal Dr. Lakshmi Sudha for their valuable guidance and immense
support in providing all the necessary facilities.

We would also like to thank the entire faculty of the IT Department for their
valuable ideas and timely assistance in this project. Last but not the least, we
would also like to thank teaching and nonteaching staff members of our
college for their support, in facilitating timely completion of the mini project.

Project Team

Himani Mali 120A3025

Devang Mulye 120A3029

Parakh Pawar 120A3035


CONTENTS

Sr.No. Topic Page No.


I Abstract 5
1 Problem Statement 6
1.1 Objective 7
2 Proposed System 8
2.1 Introduction 8
2.2 Details of hardware and software 8
3 Implementation 9
Abstract

Our project is a labor of love, born out of our passion for competitive
programming. We've embarked on a mission to create a powerful Discord
Bot tailored for competitive programmers, one that streamlines the process
of tracking events on platforms like CodeChef and CodeForces while also
offering a virtual compiler for C++ and Python, among other handy features.

As competitive programmers ourselves, we know how crucial it is to


have up-to-date information and a reliable platform for testing code. This is
what drives us to improve and contribute to the competitive programming
community.
Our journey began by identifying various issues in our repository. From a
somewhat chaotic repository structure to necessary file adjustments, we're
committed to addressing these challenges. But our mission goes beyond mere
problem-solving; it's deeply rooted in the principles of open source
development.

Our Discord Bot is poised to become a valuable resource for


competitive programmers. It will keep you in the loop with real-time event
updates, provide a platform for code testing, and offer numerous other
features to make your competitive programming journey smoother.

We believe in the power of open source. By contributing to the open


source repository, we aim not only to fix the issues we've spotted but also to
share our improvements with the wider programming community. It's a way
for us to give back and foster collaboration and innovation within the
competitive programming sphere.

Our project embodies the spirit of cooperation, innovation, and


community-driven development. We're excited to offer a glimpse into the
future of competitive programming tools and the unlimited potential of open
source software. As we focus on enhancing the competitive programming
experience and providing valuable resources, we look forward to making a
significant impact on how programmers prepare for and participate in coding
competitions. Join us on this journey, and together, we'll reach new heights
in our coding endeavours.
Problem Statement
Our Project: https://github.com/SalmanAd01/CP-Bot This project is a labor
of love, born from our passion for competitive programming. We're excited
to share the challenges we've encountered and the steps we're taking to
enhance our project repository, making it more accessible and user-friendly
for all contributors and users.

Unorganized File Structure:


We've realized that our project's file structure needed some TLC. Over time,
as we developed the codebase, it became clear that the repository's
organization had room for improvement. This complexity was not only
cumbersome for us but could also be a barrier for potential collaborators who
might find it challenging to understand and work with our codebase.
To tackle this issue, we're in the process of diligently restructuring our
repository. This involves creating distinct directories for different
components of our Discord Bot. For instance, there will be designated folders
for event tracking, code testing, and other functionalities. By organizing our
code, we aim to make it easier for everyone to navigate and contribute
seamlessly.

API Tasks:
Another area we're focusing on is enhancing the clarity of our code when it
comes to API tasks. As our bot's capabilities expanded, the complexity of
managing interactions with various APIs increased. This made it harder to
maintain and extend our bot's functionality efficiently.
To address this, we're in the process of introducing well-defined functions
for API tasks. These functions will serve as clear entry points for our code to
interact with external APIs. This not only simplifies our codebase but also
encourages code reusability. We want anyone working on our project,
including contributors and developers, to have a straightforward way to
understand and interact with the APIs, making it easier to extend or modify
our bot's capabilities.

ReadMe Update:
Our ReadMe is the gateway to our project, and we've recognized that it's time
for an upgrade. While our existing ReadMe provided a basic overview, we're
committed to making it far more informative and user-friendly.
Our revamped ReadMe will include sections that comprehensively explain
our bot's features, offer step-by-step guidance on setting up the bot, and
describe how to contribute effectively. We understand that not everyone is
familiar with the intricacies of setting up a Discord bot or contributing to a
project, so we're working to provide clear and approachable guidance.
Proposed System

Our Proposed Workflow for Contributing to Our Project:


At our project, we've established a clear and structured workflow for
contributing that allows us to address issues and enhance our codebase in a
systematic manner. Here's a detailed breakdown of the steps we follow:
1. Forking Our Repository:
To get started, we recommend forking our main project repository on
GitHub. This action creates a copy of our project under your own GitHub
account. It serves as your personal workspace for contributing.
2. Creating Branches:
Next, within your forked repository, you should create a separate branch for
each issue or feature you intend to work on. These branches will keep your
different lines of development neatly separated.
3. Switching to the Specific Branch:
After creating a branch for a specific issue or feature, switch to that branch
using the Git command: git checkout branch-name. This ensures that you are
focused on the particular task at hand without affecting other parts of the
project.
4. Making Required Changes:
In your dedicated branch, begin making the necessary changes to our
project's code. This typically involves writing or modifying code to address
the specific issue or implement the feature.
5. Git Add, Commit, and Push:
Once the changes are complete, use Git commands to track and save your
work:
git add .: Stages the changes you've made.
git commit -m "brief description of changes": Commits your changes with a
descriptive message explaining what you've accomplished in this commit.
git push origin branch-name: Pushes your local changes to your branch in
your forked repository on GitHub, making your changes available for review
and potential integration.
6. Creating a Pull Request:
After pushing the changes to your forked repository, initiate a Pull Request
(PR) on our main project repository. In the PR, provide a clear description of
your changes, reference the issue you're addressing, and request a review
from our project maintainers.
7. Review and Merge:
Our project maintainers, along with fellow contributors, will review your
changes. If your work meets our project's standards and aligns with the issue's
requirements, we will merge your changes into the main branch of our
project.
8. Updating Your Fork:
It's crucial to keep your fork up to date with the latest changes from our main
repository. Periodically, use the git pull command to synchronize your fork
with our project's latest code, ensuring your work remains compatible with
our latest developments.
This workflow is designed to facilitate collaboration and contributions to our
project in an organized and effective manner. It allows you to make
meaningful contributions while ensuring the quality and consistency of our
codebase. We welcome your involvement and look forward to working
together to enhance our project. Thank you for being part of our communi
Implementation

9
10
11
Conclusion

The journey of addressing the issues within our project's repository has been a
testament to our team's dedication and the strength of collaborative open-source
development. We have followed a structured workflow to make significant strides in
enhancing our project.
Forking the repository marked the inception of our involvement, creating our own
dedicated workspaces while symbolizing our commitment to contributing to the larger
community. It was a demonstration of our shared vision for making a positive impact on the
coding community.
The creation of individual branches for each issue proved invaluable. It ensured that
our efforts remained organized, focused, and that each challenge had its dedicated space for
resolution. This approach not only simplified the development process but also led to more
comprehensible, efficient, and scalable code.
The heart of our contributions lay in making the required changes within these
dedicated branches. We witnessed the transformation of complex issues into manageable
tasks, with each alteration bringing us closer to our project's goals. This experience affirmed
that a well-structured approach to issue resolution is essential for continuous project
improvement.
The Git commands - 'git add,' 'git commit,' and 'git push' - served as the connecting
thread between our local development environments and the main branch. These commands
were not just technical steps but symbols of our collective effort, as our improvements were
integrated into the heart of our project.
Our journey underscores the significance of adhering to a structured workflow in
open-source development. It highlights the power of breaking down complex problems into
manageable components and showcases the incredible potential of the open-source
community. Diverse individuals, regardless of their backgrounds and locations, can unite to
create meaningful change.
Our dedication to this project and the open-source philosophy remains steadfast. The
steps we've taken reflect our commitment to creating a more accessible, organized, and
efficient project. We eagerly anticipate the continued collaboration and the exciting
developments that lie ahead as we work together to benefit the broader coding community.

12

You might also like