Giter VIP home page Giter VIP logo

rocketcp's Introduction

Rocket Competitive Programming

A command line client for parsing and making folders and files for test cases using the competitive companion extension and testing the solution. Building this with an ๐ŸŽฏ aim of making Competitive Programming More Productive


Tech Stack:

JavaScript Make-File E JS Shell NodeJS

Usage [As of development stage]:


Here is our discord server link - https://discord.gg/wzjyjyACuR

Note:

  • I don't have much knowledge about wether the file operations should be synchronous or asynchronous.
  • I'm trying to keep most of the (infact all of the) functions as synchronous.

Checklist:

  • Parse the post request data from the extension
  • Create files for the problems recieved
  • Change the file creation into folder creation
  • Make a template directory and copy the template
    • Template Checklist:
      • add the problem metadata on the top of the problem file
      • add only the metadata if template not found
  • Create make file for each folder
    • Makefile Checklist:
      • run the program agains the test cases
      • show the difference in a user readable format (chalk for node js coloring/ bash based coloring)
      • Can we have a Makefile in a directory and then use that makefile for all the sub folders [ may be have smaller make files in each sub dir ] - Aim: memory efficient
  • Config files storing user preferences
  • Ship a binary instead of running the commands using node js. Refer cftool for example (or atleast a npm package that can be installed globally)

Things to figure out (way above my head as of now):

  • Running the js script from inside the problem directory
    • May be use a hash bang #/usr/bin/env node and link the file to bin using ln
  • Making a npm package that can be installed globally ??
  • Make an extension like competitive companion for codechef and codeforces
  • Submit the problem to cf from the cli.
    • Network checklist:
      • Check and understand the csrf token stuff
      • Deep dive into the network tab
  • If it is that the extension is developed incorporate usage of advanced DOM manipulations and web scraping and parsing and extend the extension to many other sites

Dependencies:

  • Aim to use the least dependencies and Especially not use a web framework and build the application using vanilla node js
  • mkdirp - Will rewrite after studying more about path library and seperators and POSIX and NON POSIX URL Like paths
  • Prefer having less dependencies to having less SLOC

Recall:

  • Donot involve complexities like using env variables at the start
  • Think of cross platformeness later
  • Make a working version and then focus on refactoring and abstraction

Technical details used:

  • PORT for listening to post requests from the extension: 10045
  • shebang: #!/usr/bin/env node

For GSSOC'21 Participants

Code Formatting

  • single quotes
  • tab width: 4

Please use following template for PR:

#Issue id For example - Embed a Makefile into each problem folder #10

  • Please use following commit message template during working on assigned issue:
[Issue#Issueid]Summarize the change in less than 50 characters

Because:
- Explain the reasons you made this change
- Make a new bullet for each reason
- Each line should be under 72 characters

For example:

[Issue#10] Added Make File With Two Test Cases

Because:
- To start implementation of extra feature.
  • In case of any concern and queries feel free to ping us in assigned discord channels.

Contributors:

Credits goes to these people:โœจ

rocketcp's People

Contributors

kaushik-rishi avatar shubham-kumar-2000 avatar learneradarsh avatar guptatanisha avatar rohan-kulkarni-25 avatar khareyash05 avatar aryamanz29 avatar knavdeep152002 avatar yash1256 avatar

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.