CPCli

CPCli Used AI

16 devlogs
13h 25m
•  Ship certified
Created by kashsuks

A CLI tool for a competitive programmers built using python. It allows you to view stats across multiple sites, control templates, quickly test code, and maybe submit through your console!

Timeline

Ship 2

1 payout of shell 21.0 shells

kashsuks

23 days ago

kashsuks Covers 2 devlogs and 1h 10m

I updated the documentation site with the new installation commands as well as the new command themselves. Previously, they were referred to as python3 main.py command but now, they're referred to as cp-cli <command>.

Update attachment

In these past few days, I tried multiple times to get the binaries working by using pyinstaller. It finally works! With a few workarounds for mac and windows, you can now install the .exe and apple versions with a few extra commands to make it an executable and a global command! They are now available on github under the releases https://github.com/CompProgTools/CPCli/releases/tag/v1.0.0

Update attachment

Ship 1

1 payout of shell 218.0 shells

kashsuks

about 1 month ago

kashsuks Covers 14 devlogs and 12h 14m

I've added some final touches such as dependabot updates, greeting workflow, and pyling updates.

Update attachment

Okay in this session I added the stats system that allows you to get a general overview of your statistics. That includes, total problems solved, average rating, highest rating, most common tags, highest streak, etc. I've also made a graph subcommand that graphs the rating of all the problems you've solved over time. I also updated the documentation accordingly.

Update attachment

In this devlog, I worked on the streak system, added the cf log system that lets you log a day along with the problem you did. The streak system is pretty simple, you log a problem, and your streak is continued, it also shows what problem(s) you solved. I also added a code of conduct and contribute section to the documenation site!

Update attachment

In this kinda confusing yet fun session, I worked on the contribution section of my documentation. It really just let me flush out my ideas on what a CP-Cli contributor should be like, and what the main goal of this project is. What are we trying to do for competitive programmers, and why? That was the main question that I aimed to answer in this section. I also added a flag for the codeforces subcommand that allows you to set a problem as solved, this is so I can add streaks and graph/stats in the very near future in order for the programmer to better understand their consistency and where they focus their practice on. The attachment is what the --solved flag looks like and the usage. Really it was just a normal O(1) look up time on the dictionary since I have the required parameters!

Update attachment

I added a pip command in order for you to run a command and update the code as well as build it to use the cp-cli command.

Update attachment

In this update I added commands for the leetcode daily challenge, as well as codeforces contests, and I updated the documentation accordingly.

Update attachment

I updated the documentation even more, this time I've completed the sync feature.

Update attachment

WOW that was a long session. I spent good 90 minutes just writing documentation. I got the about me section as well as the installation, setup, and template section done. The docs are looking good all thanks to Mkdocs!! I also tested the sync command and it works!! The contest results from last week came out, and while I did lose 15 elo, the sync command tracks it!!!

Update attachment

This time, I wanted to add documentation and overall polishing the project as it is. I wanted to add a contribution, code of conduct, and documentation to the project so its more accessible for anyone new to contribute. I kinda just based the CONTRIBUTION.md file based on what I think CP-Cli should look like in the future, being a fast and vast cli tool for all things competitive programming. I also based the code of conduct on the github guide and modified accordingly. For the documentation, I wanted a quick way to get started while not having to write the html, css, and js all the way from scratch. Thats when I remembered about jekyll through #tonic, so I did a quick search for jekyll themes for documentation and came across Mkdocs. It has a theme that is identical to that of read the docs, so I went with it. Tinkered around for a while a managed to get the docs and the rest of the project code onto one branch. You can access it at, docs

Update attachment

In this long ahh session I managed to get the template system working. Essentially, you can create templates for certain kinds of problems (ex: permutations, binary search, etc) using the command cp-cli template --make name.ext --alias alias the template subcommand has other arguments for useful things such as the --make command which allows you to make a template with the alias argument. So a binary search template command would look like:

cp-cli template --make binarySearch.cpp --alias binarySearch

and to use this template, simply use the command cp-cli template --use alias --filename name.ext. The --use flag followed by alias just refers to the alias created in the command before and the --filename tag allows you to use that template in a predefine path in the config command

Update attachment

Added a config command so you can change the account username, set default language, name, default code editor.

Update attachment

Added the testcases feature to allow quick testing!! It only supports string inputs but soon I'll also add ints and floats

Update attachment

In this update, I added a subcommand (argument) called sync that allows you to view all your rating changes across the platforms at the same time.

Update attachment

Created the basic account linking system with the CodeForces, LeetCode, and AtCoder API and save it to a config on ~/.config/cpcli