This repo contains a CLI tool for create, save and deploy exercises for interviews.
The main idea is to have a collection of easy to extract interview code challenges and being able to deploy them into codesandbox.
The CLI (interview-tool) let you create a new project with the next scaffolding, so you don't start form scratch!
Also, let you add/save already started projects to your interview list, following this criteria.
All the projects into your interview list are able to be deploy! you have multiple criteria selection, even a random one for avoiding favoritism problems! 😎
For using this CLI, needs to be installed:
Only need to run
npm install -g interview-tool
And that's it!! 🥳
- 1º Download the project and install the packages inside the project folder
cd interview-challenges/
npm i
- 2º Inside the project folder you need to create a linksymb to be able to run the tool globally
npm link
-
3º Go to another location (one folder back is enough!) and check if the command interview-tool is available.
-
4º That's all! Your code changes are going to take effect over the commands executed by the tool! 🤓
For a more detailed documentation and examples
interview-tool <command>
-
add <folderName>
: Name of the folder containing the repo that you want to upload. -
list
: Get all the exercises available -
create <projectName>
: Create a new project folder to work in locally. -
deploy [-p] [-t] [-d] [noTests]
: Deploy to CodeSandbox by projectName, Topic or Difficulty -
completion
: Follow the instructions to get autocompletion CLI tool.
Github Actions for creating a npm package
- NodeJs - Server Environment
- Yargs - Command Parser
- CodeSandbox - Exercise release environment
- SQLite - Local exercise DB
✔️ Adding more unit testing.
⬜ Manual Testing on Windows.
⬜ Manual Testing on Linux (Ubuntu and Debian).
✔️ Adding better log information.
⬜ Adding support for generate document on readme (to PDF format) in every internal project.
✔️ Check project status before saving.
⬜ Avoid adding duplicated projects
✔️ Setting Dependabot for the project.
⬜ Create Integration test for avoid repeat manual testing over different OS.
⬜ Install Eslint and define Standard.
✔️ Define License for the project.
⬜ Add multiple projects in batch when contained in the same folder.
⬜ Install Husky for prepush and avoid upload wrong code.
⬜ Adding Changelog tracking in user documentation.
⬜ Track Analytics usage of the CLI.
⬜ Create Github Page for user Documentation.
⬜ Create Wiki for developer easy rampage.
- Francisco Moreno - Idea & Initial work
Thanks goes to these wonderful people (emoji key):
Tomás Novau 👀 |
María Celeste de Majo 👀 |
This project follows the all-contributors specification. Contributions of any kind welcome!