GithubHelp home page GithubHelp logo

duchenpaul / dailynotes Goto Github PK

View Code? Open in Web Editor NEW

This project forked from m0ngr31/dailynotes

0.0 1.0 0.0 2.39 MB

App for taking notes and tracking tasks on a daily basis

License: MIT License

Python 29.90% JavaScript 1.28% HTML 2.73% Vue 51.16% TypeScript 13.63% Shell 0.27% Dockerfile 0.47% Mako 0.56%

dailynotes's Introduction

DailyNotes: Daily tasks and notes in Markdown

Current version: 1.0-beta9

About

The idea for this app came from using my Hobonichi Techo planner every morning to write down what I needed to accomplish that day & using it for scratching down random thoughts and notes as the day went on. The closest thing I've seen to an app for replacing this system is Noteplan, but I don't use a Mac or an iOS device, and it's not self-hostable, so I decided to write my own.

Since I had the need for keeping track of to-dos throughout the day, regular Markdown didn't work for me since it doesn't natively support tasks. So as an alternative I'm using Github Flavored Markdown (GFM). I really wanted it to feel like an actual text editor and not just a textbox, so I decided to use CodeMirror to handle all the input. Fira Code is used to provide font ligatures. Some other nice features include code highlighting, text/code folding, and a task list where you can toggle the status of any task from any date or note.

Roadmap

I'd like to try add include at least of some the following features to get to a final v1.0 release:

  • CalDAV support
  • HTML preview (instead of just markdown)
  • Kanban board for tasks (and new syntax to attach meta info like swimlane and project for each task)
  • Nested tagging

In Action

Here is some screenshots of what it looks like:

Main editor:

Search page:

Task list:

Running

The recommended way of running is to pull the image from Docker Hub.

Docker Setup

Environment Variables

Environment Variable Description Default
API_SECRET_KEY Used to sign API tokens. Will be generated automatically if not passed in.
DATABASE_URI Connection string for DB. Will create and use a SQLite DB if not passed in.
DB_ENCRYPTION_KEY Secret key for encrypting data. Length must be a multiple of 16.

Warning: If changed data will not be able to be decrypted!
Will be generated automatically if not passed in.
PREVENT_SIGNUPS Disable signup form? Anything in this variable will prevent signups.

Volumes

Volume Name Description
/app/config Used to store DB and environment variables. This is not needed if you pass in all of the above environment variables.

Docker Run

By default, the easiest way to get running is:

docker run -p 5000:5000 -v /config_dir:/app/config m0ngr31/dailynotes

Development setup

Installing dependencies

You need Python (works on 2 and 3) and Node >= 8 installed

pip install -r requirements.txt
cd client
npm ci

Creating the environment

You can use the environment variables from above, or you can generate new ones by running the following:

./verify_env.py

Keep in mind that since the data is encrypted, if you modify the DB_ENCRYPTION_KEY variable, your data will not be accessible anymore.

Running

During development you need to run the client and server simultaneously

./run.sh
cd client
npm run serve

dailynotes's People

Contributors

dependabot[bot] avatar hhhhhojeihsu avatar m0ngr31 avatar marclr avatar voidtek 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.