Skip to content

GhostVaibhav/MarkIt

Repository files navigation

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, daniel@haxx.se, 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 wmcbrine@gmail.com and Chris Szurgot szurgot@itribe.net 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&