GithubHelp home page GithubHelp logo

sbrugel / journal-manager Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 258 KB

A Windows Forms application that allows the user to write journal entries, save them locally, and view them later

C# 100.00%

journal-manager's Introduction

Journal Manager

This is a Windows Forms application that allows the user to write journal entries, save them locally, and view them later. I made this out of a desire to find a better way to keep a journal, preferring to type instead of physically write, while being able to use such an application offline.

Features Overview

  • Ability to create new journal entries - with a title, and a context box filled with text - and save them to your system. They can be saved with a custom name via "Save As", or with an autogenerated name based on system time via a quick save ("Save") feature.
  • Backdrop colors for journal entries - can be one of a few pre-defined ones or a custom one (picked via a color picker).
  • An easy way to read over previous entries, delete selected ones, and edit them later on.
  • Ability to adjust the display font of entries and the folder from which journal entries are read.
  • Ctrl+S can be used to quicksave an entry. If it is a new entry, a new file is created, otherwise, the file being edited is overwritten.
  • Basic markdown for journal entries can be used - e.g. [b]Text[/b] will bold text, [h1]Header[/h1] will create a large header, etc. Keyboard shortcuts now exist, such as Ctrl+B for bold - more info described below.
  • Ability to create custom entry tags (with colors), and tag entries.
  • Ability to search for a keyword or tag across all saved entries.

No internet connection required. Journal entries are saved locally; if on a Windows machine, you can use the integrated OneDrive feature to work with your journal across multiple of your machnines.

Demo Video

TBA.

Setting Up

Upon opening the program for the first time, you'll be greeted with a window that looks like this:

Journal_Manager_5vZXjTHnf0

Select the directory you'd like the program to read journal entries from. This is also the location where the program quicksaves journal entries you write (more info below).

That done, you'll now be presented with the main menu:

Journal_Manager_wDhgPA7oOD

Creating an Entry

Click on "New Entry" and you'll be presented with this window:

Journal_Manager_xb2op4LwkP

Here, you can write your entry in the contents box, and optionally add in a title for the entry. If filled in, this is what will be listed as the entry's title on the Entry Viewer; it otherwise defaults the the entry's creation date and time. Optionally, you can also set the background color of the entry to either one of a few pre-defined colors or a custom one of your choosing.

Journal_Manager_ZaYxOnOyKL

To select a custom color, a color picker will be opened upon choosing the option: Journal_Manager_bo6bqrXk52 Journal_Manager_1YvOy7bL9O

You can also format text! In order to do that, you can use the following tags:

  • Surround text in [b] and [/b] to make the enclosed text bold. Or you can highlight a selection and press Ctrl+B to make the selection bold.
  • Surround text in [i] and [/i] to make the enclosed text italic. Or you can highlight a selection and press Ctrl+I to make the selection italic.
  • Surround text in [u] and [/u] to make the enclosed text underlined. Or you can highlight a selection and press Ctrl+U to make the selection underlined.
  • There are three header tags, [h1], [h2], and [h3] that can make bigger text.
  • You can also combine tags! (e.g. to make bold, italicized text)
  • Pressing TAB will create an indent in the entry. (This is a pseudo-indent, adding in just a bunch of spaces, but hey, it works.)

On the top bar, you can load an existing entry to edit, but note that this will discard any unsaved changes you've made to whatever entry you are currently editing.

Here's an example entry of mine that I'll refer to later: Journal_Manager_VfFEQTIoss

Saving an Entry

Once you're done with your entry, you can save it in one of two ways:

  • Pressing "Save" on the top left or hitting Ctrl+S will do a quicksave of the entry, saving the entry in the directory you specified earlier, with its name being based on the system date and time. If quicksaved more than once, the existing file will be automatically overwritten:

image

  • "Save As" will allow you to save the entry as a custom name, or overwrite an already existing entry of your choosing.

Viewing Previous Entries

Back at the main menu, go to "View Entries." This will bring you to a list of entires you've already made, listed by their title (if none supplied, the title used is the date/time the entry was created) and with the entry's color as a background:

Journal_Manager_kdNhZ2g827

Here, you can simply view the entry (without editing it), or you can bring the entry's contents into the entry editor and modify it. Double-clicking an entry's name in the list will bring you to the entry viewer:

Journal_Manager_gE2KLWXRV6

You can also see the previous and next entries easily, if applicable, by pressing the two buttons on the bottom left/right.

Tag System

A tagging system is in place which allows you to create "tags" that can be added to your entries, allowing you to narrow down searches (more described below) by filtering entries based on tags they contain.

To start, you can create tags by (starting from the main menu) going to View Entries/Tags -> View Tags -> New Tag. Enter a name and select a color for it, then save the tag - this will make it usable in the tag selector for entries and search function.

img

To tag an entry in the Entry Creator, click on the combo box adjacent to the Add Tag button, select a tag, then press the button. That will add it to the current tags in the entry. Double clicking a tag in the tags box will remove it.

img

Searching

You can search for a keyword or tag across all saved entries. This is accessible through Main Menu -> View Entries/Tags -> Search.

img

Preferences

Here, you can change the journal directory and font:

image

The journal directory takes in a folder, while the font option brings you to the font selector. You can change the typeface, as well as the font size. The size will adjust the size of normal text and headers (which are relative to the normal text size) accordingly.

image image

Closing Words

I hope you enjoy and/or get use out of this project! If you have any feedback, don't hesistate to toss something in the issues section.

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.