congard / simple-notes

A simple notes app written in C++17

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SimpleNotes

A simple notes app written in C++17.

Developed within the subject of C++ Programming Language at the AGH University of Science and Technology.

Summary

  • New note can be created by clicking add ("+") button, by clicking File => New note or via shortcut Ctrl + N;
  • You can delete your note by clicking remove ("-") button near the note you want to remove;
  • In order to synchronize your local notes with remote server, you need:
    1. Click File => Sign in / up;
    2. Enter your data (email and password) and click Sign in if you have already created an account or Sign up if you haven't;
    3. Now you can sync your notes: click File => Synchronize or sync button in the toolbar;
    4. Now all your notes are synchronized with the server;
  • This app can be used offline (without need to log in), but in that case you won't be able to synchronize your notes.

Dependencies

  1. Firebase (tested with 11.2.0)
  2. Qt 5+ (tested with 5.15.9 and 6.5.1)
  3. QtAwesome (included as submodule)

Note Clone with submodules using the following command:

git clone --recurse-submodules https://github.com/congard/simple-notes.git

Configuring

Firebase

  1. In order to build this project you need to download & unpack Firebase C++ SDK;
  2. You need to create your own instance of Firebase Realtime Database and generate your own key:
    1. Add Android app
    2. Download google-services.json and place it in SimpleNotes working directory
  3. On Linux most likely it will be necessary to install some additional libraries like libsecret-devel (Fedora)

Qt

Qt is used for UI.
Supported versions: Qt5, Qt6.

How to install Qt (Qt6) you can find here (it is enough to install just Desktop gcc 64-bit).

Building

CMake options:

Flag Description Required
FIREBASE_SDK path to unpacked Firebase C++ SDK Yes
CMAKE_PREFIX_PATH path to Qt, e.g. $HOME/Qt/6.5.1/gcc_64/ No, if Qt is installed system wide
mkdir build
cmake -DCMAKE_BUILD_TYPE=Release -DFIREBASE_SDK="$HOME/firebase_cpp_sdk/" -DCMAKE_PREFIX_PATH="$HOME/Qt/6.5.1/gcc_64/" -Bbuild -G"Unix Makefiles"
cmake --build build --target simple_notes -- -j 4

Note Do not forget to set valid FIREBASE_SDK and CMAKE_PREFIX_PATH (if needed) values.

The resulting executable: build/simple_notes

Note Do not forget to set correct working directory, i.e. directory in which google-services.json is located. See: Configuring > Firebase section for details.

Warning This project was tested on Linux (Fedora 38) only.

Thanks

Links

  1. Firebase C++ setup
  2. Firebase C++ reference
  3. Qt 6 reference
  4. Qt 6 Widgets docs

Screenshots

Screenshot Firebase Database Structure

About

A simple notes app written in C++17

License:BSD 4-Clause "Original" or "Old" License


Languages

Language:C++ 95.9%Language:CMake 3.7%Language:C 0.3%