Coder Social home page Coder Social logo

ghostvaibhav / markit Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 4.69 MB

A cross-platform TODO terminal app

Home Page: http://markit.ghostvaibhav.codes/

License: MIT License

C++ 89.34% C 4.75% Batchfile 1.68% CMake 4.22%
console console-application cpp ncurses pdcurses curses json-api nlohmann-json terminal-app curl curl-library sha256-crypt json todoapp todolist tui secret c-plus-plus pantry-cloud

markit's Introduction

Mark It!

A cross-platform TODO app in teminal with simple interface and lightning fast speed for everyone

 

Codacy Badge CodeQL Code Inspector C/C++ CI

 

Successfully built and tested on Windows, MacOS, Ubuntu, Arch Linux, Kali Linux, Debian, CentOS, Alpine, Fedora Linux, openSUSE Leap and openSUSE Tumbleweed

 

Index

Dependencies

This project uses

Building the project

1. Setting the environment

On Windows

You can simply use the libraries and the header files which come preinstalled in the include and the lib folder. However, if you wish to build them yourself, you can have a look at the repository's page mentioned above and build them on your own.

Note: All the libraries which come preinstalled are compiled as x86 for maximum compatibility.

  • Building automatically

    You can automatically build the libraries if you want by just executing prereq.bat. It will download the latest version of all libraries and build it using Visual Studio.

    Note: The script runs on two tools: Git and Visual Studio (optionally MinGW).

Note: For PDCurses, you can build it through MinGW or Visual Studio, you will be prompted to enter the choice during the build process.

  • Building manually

    You can manually build and install all the libraries by visiting their Github pages and following their build rules.

    Note: For building most of the libraries you will be required to install Visual Studio.

On UNIX-based systems

You can simply get the libraries using the sudo apt install command in Debian Linux, Ubuntu.

Just do:

apt install g++
apt install libcurl4-openssl-dev
apt-get install libncurses5-dev libncursesw5-dev

Or in MacOS, first install Homebrew and then do:

brew install g++
brew install make
brew install curl
brew install ncurses

Or if you are using Red Hat linux, CentOS or Fedora Linux 21 or older do:

yum group install "Development Tools"
yum install libcurl
yum install ncurses-devel

Or if you are using Fedora Linux 22.x+ do:

dnf install gcc-c++
yum install libcurl
dnf install ncurses-devel

Or if you are using Arch linux or Manjaro do:

pacman -Sy gcc
pacman -S curl
pacman -S ncurses

The header files are platform-independent and hence the above commands will install/update your libraries.

This will setup the environment required for building the project.

2. Compiling the required files for building project

In Windows

Compile build.cpp by launching terminal in the same folder:

g++ build.cpp -o build

You can run the build file with the file to be built i.e.:

build main

In UNIX-based systems use

CMake for building the project.

You can know the functionality of all files in the FILE_STRUCTURE file.

 

Visualising the project

 

You can visit Whimsical for an interactive design diagram.

 

Licenses

MarkIt! license

Check the LICENSE file

The curl license

Copyright © 1996 - 2021, Daniel Stenberg, [email protected], and many contributors, see the THANKS file.

All rights reserved.

Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder.

JSON for Modern C++ license

Copyright © 2013-2021 Niels Lohmann

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

PDCurses

Special thanks to the maintainer of the repository William McBrine [email protected] and Chris Szurgot [email protected] for porting it to the Windows console.

Ncurses license

Copyright © 2018-2019,2020 Thomas E. Dickey

Copyright © 1998-2016,2017 Free Software Foundation, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, distribute with modifications sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name(s) of the above copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization.

A special secret: AdsEu5%2&

markit's People

Contributors

ghostvaibhav avatar

Stargazers

 avatar

Watchers

 avatar

markit's Issues

Make responsive window while inputting

The window is normally unresponsive while taking an input because it takes place as "taking the whole string" rather than "taking character by character" which hampers responsiveness. Therefore, converting all the input methods to take input character by character.

Fix display in main menu

The display in the main menu is inconsistent with unnecessary padding. Remove it and make the menu a little clean.

Single threaded -> Multi threaded

The whole project is coded in a single-threaded fashion i.e one function call after another. Quickly switch to a multi-threaded model for increased performance and lesser loading times.

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.