Skip to main content

No project description provided

Project description

The go-to CLI tool for competitive programmers and setters.

Poetry Python FastAPI JSON


Table of Contents

Overview

![Usage video]

GitHub license PyPI pyversions PyPI version shields.io

Codefreaker is a CLI tool and library that aims to help contestants and setters from the competitive programming community to have an easier time.

Although trying to solve the issues of these two audiences seems to be too much for a single tool to handle, we exploit the fact that the journeys of contestants and setters have a lot in common.


Features

For contestants

  • 🤖 Parsing: provides an entrypoint for contests and problems to be parsed through Competitive Companion.
  • 🔨 Testing: provides commands for automatically running your problems against both downloaded and manually added testcases, and shows a clear report.
  • 📤 Submit: provides the option of submiting your solution for a few supported online judges from the command line.
  • 🧱 Structure: provides an opinionated structure for the file tree of both parsed and manually created problems.
  • ⚙️ Flexibility: still gives enough flexibility for you to extend your problem. Add testcases, set a custom checker, write a generator.

For setters

🔜 Still coming up!


Getting Started

System Requirements: the tool was developed for Unix systems and was tested only in Ubuntu.

If you want to use the parsing feature, you also have to install Competitive Companion.

Installation

From pip

PyPi

$ pip install codefreaker

From code

Go to the cloned folder and run:

$ pip install .

In Poetry venv (while developing)

Run the following when in the Poetry venv.

$ poetry install

Usage

0. Be familiar with Competitive Companion

Make sure you're familiarized with Competitive Companion -- a helper that facilitates parsing tasks directly from your browser.

1. Clone a contest or a single problem

$ # Or simply `cfk c`
$ cfk clone

After running the command above, hit the ➕ (plus) icon in Competitive Companion, and you should start seeing parsing logs in the command line.

clone

2. Implement a solution and run testcases

$ # Or simply `cfk test A`
$ cfk test A

test_wa test

3. Submit your solution

$ # Or simply `cfk s A`
$ cfk submit A

submit

Advanced usages

View auto-generated CLI reference here.

Tests

TODO


Project Roadmap

TODO


Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your local account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone ../.
    
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
    
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
    
  6. Push to local: Push the changes to your forked repository.
    git push origin new-feature-x
    
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the Apache License 2.0 License. For more details, refer to the LICENSE file.


Return


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codefreaker-0.1.3.tar.gz (40.6 kB view hashes)

Uploaded Source

Built Distribution

codefreaker-0.1.3-py3-none-any.whl (49.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page