Giter Site home page Giter Site logo

dashroshan / coding-contests-companion Goto Github PK

View Code? Open in Web Editor NEW
41.0 2.0 34.0 257 KB

💪 Discord bot for coding contests info, notifications, and daily problems from codechef, leetcode, hackerrank, codeforces, atcoder, hackerearth, and geeksforgeeks

License: MIT License

JavaScript 100.00%
coding-contests competitive-programming discord-bot hacktoberfest gssoc

coding-contests-companion's Introduction

Coding Contests Companion

About

Coding Contests Companion is a discord bot that displays all ongoing and upcoming coding contests from CodeChef, LeetCode, HackerRank, CodeForces, AtCoder, Google KickStart, and HackerEarth in one place in your discord server. You can set up an embed for your members to take a role themselves which will be pinged an hour before any contest is about to start with the contest details. Never miss a coding contest again!

The bot can also send a random problem selected by LeetCode every day covering a variety of topics to keep your server members consistent, sharp, and ready 💪

Use the /help command after inviting the bot for the user guide.

Contributing

Project contributors

Contribution
B4CKF1SH Added support for AtCoder
Taduri Saimahesh Added support for HackerEarth
Swoyam Siddharth Nayak Corrected available platform details
Souvik Nayak Wrote the setup instructions
Sahil Anower Added support for Google KickStart
DevilzzNikhil Added server joining message feature

Wish to contribute? Check this out

coding-contests-companion's People

Contributors

abhinavcode13 avatar anshika-jain02 avatar dashroshan avatar devilzznikhil avatar devsargam avatar harmeetsingh11 avatar imrannawar avatar jatinsharma32 avatar mit-27 avatar mridul549 avatar rj025 avatar s-ishita avatar sahilanower avatar saimaheshtaduri avatar souvik-nayak avatar swoyam2609 avatar tushar98644 avatar yeehawbeans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

coding-contests-companion's Issues

Add support for HackerEarth

What needs to be done

Create a hackerEarth function in the scraping.js file which returns an array of contest details from HackerEarth. You can use Axios to get the contest data as JSON from here. The contest data should be returned in the following format:

{
    name: 'name_of_contest',
    url: 'link_to_the_contest',
    start: start_time_in_epoch_format,
    duration: duration_in_seconds
}

Readme Update

Screenshot 2023-05-21 160801

Adding this badges to readme makes it more attractive assign me this issue under GSSOC'23

[GSSOC '23] Request to Add "Coding Resources" Feature

Proposal

I propose adding a new feature called "Coding Resources" to our coding contest retrieval bot. This feature will provide users with a curated list of coding resources, such as tutorials, articles, videos, or online courses, to help them improve their coding skills and prepare for coding contests.

Benefits

  • Enhanced User Experience: The "Coding Resources" feature will enhance the value of our bot by offering users a comprehensive collection of coding resources in one place, eliminating the need for extensive searching.
  • Skill Development: Users can access a variety of resources covering programming concepts, algorithms, data structures, and problem-solving techniques, enabling them to enhance their coding skills and knowledge.
  • Contest Preparation: Including resources specifically tailored to contest preparation strategies, techniques, and tips will contribute to users' success in coding contests.
  • Curated and Trusted Content: We will curate the coding resources to ensure their quality and reliability, providing users with trusted content for their learning journey.
  • Implementation Approach
  • We can store the coding resources in a JSON file, which allows for easy maintenance and updating. The bot can present the resources to users by providing links or short summaries of each resource.

pls review this issue and assign it to me @roshan1337d

add readme badges

I want to add readme badges ..Please assign this issue to me under GSSOC
badges

Add New issue template

Issue templates ensure that all issues reported in a repository follow a consistent structure and format. They provide a predefined outline with sections and prompts for essential information, ensuring that users provide consistent and standardized details when creating issues.

Create Issue buttons

Currently the contributor has to raise an issue from ground zero without any prebuilt buttons, to gain a better understanding of the issue raised we can create custom issue buttons which will be visually appealing as well hassle free for the contributor to express their concern in an ordered manner .
Here 👇 are some screenshots attached to give you a better understanding on what am up to

Currently

Screenshot 2023-06-13 at 23-14-43 New Issue · SrijanShovit_carbonops-v2

To Come

Screenshot 2023-06-13 at 23-19-39 New Issue · priyankarpal_ProjectsHut

Add Auto Comment Feature to Improve Collaboration

Issue Description:
As an active contributor to your open-source project, I believe that implementing an auto-comment feature would greatly enhance collaboration and communication within the project. This feature would automatically generate comments in response to specific events, such as when an issue is opened, a pull request is created, an issue is assigned, or an issue is unassigned.

Feature Details:

  • When an issue is opened, the auto-comment should greet the author and provide a brief acknowledgement and request for additional context.
  • When a pull request is opened, the auto-comment should greet the author, express gratitude, and remind them to follow the project's contributing guidelines.
  • When an issue is closed, the auto-comment should thank the author for their contribution and encourage further engagement.
  • When an issue is assigned to someone, the auto-comment should notify the assignee and encourage them to start working on it.
  • When an issue is unassigned from someone, the auto-comment should notify the assignee about the change and suggest reassignment if they are offline.

Benefits:

  • Improved communication and engagement with contributors.
  • Provides clear instructions and acknowledgements for various events.
  • Enhances collaboration by setting expectations and providing reminders.
  • Reduces manual effort by automating comment generation.

Acceptance Criteria:

  • The auto-comment feature should be implemented using the "wow-actions/auto-comment" GitHub Action.
  • Comments should be appropriately customized for each event, mentioning relevant parties and providing the necessary information.
  • The auto-comment workflow should trigger on the following events: issues opened, pull requests opened, issues closed, issues assigned, and issues unassigned.
  • The feature should be added to the project's existing GitHub Actions workflow file.

Additional Context:
Feel free to ask any questions or seek clarification regarding the auto-comment feature. I'm excited about contributing to your project and believe this enhancement will greatly benefit its community.

Add badges to readme

I want to add badges to Readme.md

I would like to work on this as a part of GSSoC 23.

Automated Greeting Workflow

I propose to create a GitHub workflow named "Greetings". This workflow will automatically greet users who create new issues or pull requests in this repository. The Greeting will look like "Hi there! Thanks for opening this issue. We appreciate your contribution to this open-source project. We aim to respond or assign your issue as soon as possible."

Please assign this issue to me

ADD README OF THE PAGE

I have given your README a completely new look and added simplified text that is highly useful for new contributors. I incorporated the text you provided and made sure it enhances the overall appeal of the document. Please review my changes and let me know if there are any issues. If you have any concerns, feel free to assign me to the relevant issue, and I will address it as soon as possible.

Adding contributors graph in the readme

Having a contributor graph in the readme file will make it more informative and it will also boost the morale of all the contributors who have made valuable additions to this project. Current contributor information is not looking that attractive, logos of profiles can be added to the contributor graph.

Something like this maybe??
2023-06-07 09_37_33-JasonDsouza212_free-hit_ 🏏Free-Hit is an application that is used to search for

@roshan1337d , please assign me this issue under GSSOC'23.

[feat]: workflow to greet when new issue/pull request opens

Description

Currently, this project does not have any action to greet to contributors. Github action is the great tool to automate the manual stuff for your project. I would like to add Github Action workflow to greet to the new PR and issue creator.

Record

  • I agree to follow Contributing guidelines and Code of conduct of this project.
  • I am a GSSoC'23 Contributor.

Please assign me this issue under GSSoC'23
Thanks

Auto Commenting when a PR is merged

This feature aims to solve the problem of inconsistent and delayed communication following the merging of PRs. By automating the commenting process, it ensures that contributors receive timely feedback and acknowledgments. It also reduces the administrative burden on maintainers, allowing them to focus more on code reviews and other critical tasks.

Could you please assign me this issue under GSSOC'24.

[GSSOC '23] Feature Request: Upcoming Features Command

Description:

As an open source contributor, I would like to propose the addition of a new command called /upcoming-features to provide information about the upcoming features of the coding contest retrieval bot. This feature will help users stay informed about the exciting new developments and foster engagement within the user community.

Implementation Details:

  1. Create a new command /upcoming-features in the bot's codebase.
  2. Store upcoming features data in a JSON file or suitable data storage format.
  3. Read the data from the JSON file and format it to display upcoming features to users.
  4. Send a formatted message in the chat channel or via direct message to users containing the upcoming features list, descriptions, and expected release dates.
  5. Handle cases where there are no upcoming features currently planned and display a corresponding message.
  6. Optional: Provide additional features such as subscription to feature notifications and feedback submission.
  7. Expected Behavior:
  8. When users execute the /upcoming-features command, the bot should retrieve the upcoming features data and present it in a user-friendly format. Users should be able to see a list of upcoming features along with their descriptions and expected release dates.

Additional Notes:

This feature will enhance user engagement by keeping them informed about the future plans and improvements of the bot.
The JSON file or data storage format should be easily maintainable and allow for easy addition or removal of upcoming features.
Please let me know if you need any further information or if there are any specific requirements for implementing this feature. I'm excited to contribute to the project and look forward to working on this feature.

Update Contest Platforms

I would like to update the constest platforms because google kickstart has been discontinued and it will always show No scheduled contests.

  1. I would like to remove Google Kickstart
  2. I would like to add Geeks for geek weekly coding contest

Add support for AtCoder

What needs to be done

Create an atCoder function in the scraping.js file which returns an array of contest details from the AtCoder contests page. You can use Axios to get the contest page HTML content and use jsDom to query for the contest details. The contest data should be returned in the following format:

{
    name: 'name_of_contest',
    url: 'link_to_the_contest',
    start: start_time_in_epoch_format,
    duration: duration_in_seconds
}

Add issues

As the maintainer of a Collaborate repo, keeping Issues up-to-date will help the student community understand what they can do to contribute. Issues should vary by the easy (update documentation) to the difficult (add a new feature). The more involved you are, the more opportunities there are to collaborate.

Recommendations:

Add issues of varying difficulty to the repo often. you must add the tag gssoc, Level 1, Level 2, Level 3 good first issue etc.
How we cacluclate the Scores on Leaderboard: Every PR one point
Level 1: 10 points
Level 2: 25 points
Level 3: 45 points
Try to add some documentation issues as well it would be easy for beginner contributor to explore opensource through your repo.
Generate issues even if you plan on solving them, so the repository appears as active.
Contribute/commit often to the repo so it does not go stale.
Reference https://github.com/Recode-Hive/Stackoverflow-Analysis/issues

Learn.md

Learn repos should have a LEARN.md file to teach student how to build your project step by step. You can explain how to build your project with text, code snippets, images, or even short (5 minute) long video lessons. As the maintainer of a Learn repo, the LEARN.md file requires you to think critically about how to explain the building of your project and how to also make it engaging. We don't expect you to be an expert teacher, but we would like you to reflect on how difficult it was to get to your level of knowledge, and then provide friendly guidance to help other students to learn.

Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/blob/main/Learn.md

[FEATURE]: add codeql workflow

Description

Is your feature request related to a problem? Please describe.

The repository contains code in javascript, it does not have workflow for code scanning.

Describe the solution you'd like

I want to add the codeql workflow to automate security checks. CodeQL is the code analysis engine developed by GitHub to identify vulnerabilities in code. It will analyze your code and display the results as code scanning alerts. It will be enabled on every push, commit and pull request using GitHub actions.

Record

  • I agree to follow this project's Code of Conduct
  • I'm a GSSoC'23 contributor
  • I want to work on this issue

[GSSoC - 23] feat: Separating the functionality of Notification button to add delete roles.

Issue

Hello, @roshan1337d first of all this bot is really amazing 😀,
While exploring the features of coding-contests-companion bot, I found out that Role Addition & Role Removal functionality of the notification button in ./setup-contest.js can be separated and enhanced.

Current Behavior

Right now there is only one button present Notifications which does both role addition and removal tasks. So for a new Discord user, it's a little confusing as the follow up message is shown to the user after he presses the button.

Possible Solution

I have a solution for this task that will reduce the confusion of the user by adding one more button Stop Notifications.

Possible Implementation


💡 Tip: Please assign this issue to me, I will be glad to contribute to this amazing repository

Add PR template

I would like to add a pull request template for this repository. I believe that having a standardized template will help streamline the contribution process, ensuring that all necessary information is included and making it easier for maintainers to review and merge pull requests.

Could you please assign this issue to me under GSSOC'24.

add license

I want to add license .please assign this issue to me.

[GSSOC] add a comment on Problem of the day

Generally, when we are given a problem of the day, we can leave a comment on how to solve the problem, and different users can share their solutions. This can be helpful for beginners who are just starting to learn coding. Can u please assign me under GSSOC'23

Missing PR template

Addition of Pull Request Template to improve clarity and to make it easier for new contributors.

Please assign this issue to me under GSSoC'23 @roshan1337d

[GSSoC - 23] Feat: Personalized Notifications.

Issue

Hey, @roshan1337d
I am back with my notification obsession 😂, I would like to add an amazing UX-enhancing feature to this coding-contests-companion bot.
Where the user could choose which platforms he wants to get notified for.

Current Behavior

Right now the user could either get notified for all of the platform contests or none of them.

Possible Solution

We could provide the user options in the Notification Embed to choose the platform, but reacting to the Embed.

Possible Implementation

Will add more, soon


💡 Request: Please assign this issue to me, additionally please help out with the yml issue templates added recently, I am new to them, or I can continue with Markdowns.

Add CODE_OF_CONDUCT.md file

Hi there!
I recommend adding a CODE_OF_CONDUCT.md file to your repository. This file would serve as a guide for potential contributors, providing them with a clear set of expectations, guidelines, and behavior standards for participating in your project. It plays an essential role in creating a welcoming and inclusive environment for everyone involved.

I would like to work on this issue. Please assign it to me under GSSoC'23.

Thank you!

Convert normal messages into embed messages

What needs to be done

Convert all normal messages for setup-contest, setup-problem, and stop commands into embed messages. The embed should have 1089DF colour, the original message as the description, and an appropriate title in uppercase. If you feel like you can make the messages more descriptive, feel free to do so.

Update Readme file

What's missing in this repository !!

The README file is the first thing users and contributors see when they visit your repository. It serves several key purposes:

Introduction and Overview: It provides a clear and concise introduction to your project, explaining what it does, its purpose, and why it’s valuable.
Installation Instructions: It guides users on how to set up and install the project on their local machines, ensuring they can quickly get started.
Usage Guidelines: It offers detailed instructions on how to use the project, including examples and common use cases.
Contribution Information: It informs potential contributors on how they can contribute to the project, including any guidelines or requirements they should follow.
License Information: It specifies the licensing terms under which the project is distributed, ensuring users and contributors understand their rights and obligations.

Kindly assign this issue to me under GSSoC'24

Add support for Google Kick Start

What needs to be done

Create a kickStart function in the scraping.js file which returns an array of contest details (next and upcoming rounds) from the Google Kick Start contests page. You can use Axios to get the contest page HTML content and use jsDom to query for the contest details. The contest data should be returned in the following format:

{
    name: 'name_of_contest',
    url: 'link_to_the_contest',
    start: start_time_in_epoch_format,
    duration: duration_in_seconds
}

Server joining message

What needs to be done

When the bot joins a new server, find the first channel in that server where it has permission to send messages, and send an embed with the given information. If there are no such channels where the bot has permission to send messages, ignore.

Embed contents

Title

HELLO WORLD

URL

https://github.com/roshan1337d/coding-contests-companion

Color

1089DF

Description

Thank you for inviting the Coding Contests Companion to this server. It can show ongoing and upcoming contest information, send notifications before one is about to start, and send daily problems from various popular coding platforms. Use the **/help** command for the user guide. If you're facing any difficulties, feel free to **[join the support server.](https://discord.gg/9sDtq74DMn)**

Tips

  • The guildCreate client event is triggered whenever the bot joins a new server.
  • Example on how you can find the first channel in the server where the bot has permission to send messages.

Adding additional features

Adding features of kick ban timestamp user and playing music to make bot more useful for user and admin @roshan1337d

Changing bot status/activity with help command and server count

What needs to be done

Make the bot status/activity switch between Watching /help for user guide and Watching {server_count} servers every 15 seconds.

Tips

  • Set a 15 seconds loop using setInterval here
  • Use client.guilds.cache.size for the server count
  • Use setActivity with ActivityType.Watching type for setting the status/activity.

Additions in Issue Template

Description:

I noticed that the repository does not have an appropriate issue template.

Issue Template: I want to add some more points to your issue template like styling changes, documentation, etc

Please assign this issue to me under Gssoc'23 @roshan1337d

Girlscript Summer of Code Introduction/Tracking

👋 Hi @yeehawbeans ,

I am Sanjay, program Manager Girlscript Summer of Code. I'll be collaborating with you on preparing your repo for GSSoC'24 Program

Why are these changes required?
After Analysing last year's contributions and feedback it would be great for students to have a couple of standard readme files on the repo to understand what the project is all about and some issues detailing what they can contribute. This will help you to see increased engagement in your repository as well.

As mentioned students get a chance to learn step by step, how to build this project as well as invite mentors to collaborate and add features to this repo. I will generate issues, which will provide guidance on how to prepare your repo for Girlscript summer of code 2024 on 10th May.

This issue will serve as a tracking issue to track all issues related to GSSoC'24. I recommend creating a new branch for every issue and opening a pull request to track changes so we can effectively collaborate with each other and merge changes when you and I feel like those changes are ready to be merged on your primary branch.

If you have any questions or concerns, please feel free to leave a comment on this issue or any of the other issues that are generated.

I look forward to working with you :octocat:

Add templates for issues

Issue templates are very helpful for a collaboration repo. When users identify a bug or want to add a new feature, you can provide templates so you can collect all the pertinent information you need to fix a bug or add a new feature.

We recommend creating a “Report Bug” and “Feature Request” issue template.
you can refer this: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository

Some suggested prompts/questions you can add to a “Report Bug” template are:

Briefly describe the bug
What is the expected behavior?
Please provide step by step instructions on how to reproduce the bug
Some suggested prompts/questions you can add to a “Feature Request” issue template are:

Briefly describe your feature request
What problem is this feature trying to solve?
How do we know when the feature is complete?

Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/issues/new/choose
Click on Get Started button and copy the template to yours.

Remove some typos

Hello @roshan1337d
When clicked on setup-contests bot shows a message above get notified button it contains name of the contests which are are not present like kickstart
So I would like remove it and add contests name which are present like geeks for geeks

image

Please assign it to me
Under GSSOC'23 tag

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.