GithubHelp home page GithubHelp logo

osunadev / task-shell Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 1.75 MB

A simple shell with the purpose of creating tasklists to save them as images. Made with react and html2canvas package.

Home Page: https://osunadev.github.io/task-shell/

HTML 3.11% CSS 8.50% JavaScript 88.39%
react javascript webstorage html2canvas

task-shell's Introduction

TASK-SHELL

This project aims to create a language composed of commands which allows to be able to create lists of flexible tasks which can be downloaded in a convenient image format.

As mentioned, with this tool we can create lists of dynamic tasks to which we can assign a title, description and the date on which it is planned to use that task list, as well as the tasks that make up that list, along with the estimated completion time.

We have 3 types of commands: to create, delete and modify the task list and its respective tasks.

TASK-SHELL COMMANDS

IMPORTANT NOTES

  • task and task list id's are purely numbers that aren't wrapped in any special symbols such as square brackets [] or quotes []. The task-id's and tasklist-id's start from number 1.
  • Quotation marks are used for descriptions of our tasks or task lists.
  • Numbers are expressed without quotation marks, in addition to being used as id's, they are used for the dates of our task lists or for the estimated time in minutes of our tasks.

COMMANDS

TASK LIST

CREATE TASK LIST

$ create tasklist [tasklist title]
$ create tasklist [tasklist title] description “some tasklist descr.”
$ create tasklist [tasklist title] date dd/mm/yyyy
$ create tasklist [tasklist title] description “some tasklist descr.” date dd/mm/yyyy

MODIFY TASK LIST

$ modify tasklist tasklist-id title [new tasklist name]
$ modify tasklist tasklist-id description “new tasklist descr.”
$ modify tasklist tasklist-id date dd/mm/yyyy
$ modify tasklist tasklist-id title [new tasklist title] description “new tasklist descr.” date dd/mm/yyyy

REMOVE TASK LIST

$ remove tasklist tasklist-id
$ remove tasklist description tasklist-id
$ remove tasklist date tasklist-id
$ remove tasklist description date tasklist-id

TASK

CREATE TASK

$ create task [task title] from tasklist-id
$ create task [task title] description “task descr.” from tasklist-id
$ create task [task title] time estimated-time-minutes from tasklist-id
$ create task [task title] description “task descr.” time estimated-time-minutes from tasklist-id

MODIFY TASK

$ modify task task-id title [new task title] from tasklist-id
$ modify task task-id description “new task descr.” from tasklist-id
$ modify task task-id time new-estimated-time-minutes from tasklist-id
$ modify task task-id title [new task title] description “new task descr.” time new-estimated-time-minutes from tasklist-id

REMOVE TASK

$ remove task task-id from tasklist-id
$ remove task time task-id  from tasklist-id
$ remove task description  task-id from tasklist-id
$ remove task description time task-id from tasklist-id

COMMAND LANGUAGE TOKENS

The logic behind our Task-Shell is based on a simple Lexer, which is used to create tokens based on an input string provided by us. Below are the different types of tokens along with their associated values:

Token Type Token Value
StmtKeywoard Can take the values ​​of create, modify and remove.
ElmtKeywoard Can take the values of tasklist and task.
AttrKeywoard Can take the values ​​of description, date, time, title and form.
TitleText Can take the value of any text string. It differs from other tokens because it is wrapped in square brackets [].
DescriptionText Can take the value of any text string. It differs from other tokens because it is wrapped in quotes "".
DateFormat Can take the value of any date with the format dd/mm/yyyy.
Number Can take the value of any number.

After the Lexing process, we will have our tokens at hand and, with these, we will pass them to the Parser so that it interprets the tokens along with its production rules and, at the end of the process, we return a new object according to our needs. In this case, we would return a new array of task lists to use it in React, our Frontend Library.

task-shell's People

Contributors

osunadev avatar

Stargazers

 avatar  avatar

Watchers

 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.