Coder Social home page Coder Social logo

srittau / hej Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 4.29 MB

Simple browser-based personal wiki

License: MIT License

HTML 0.74% TypeScript 45.24% CSS 1.72% Python 49.05% Dockerfile 1.40% JavaScript 1.85%
personal-wiki standalone webapp wiki

hej's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar srittau avatar

Watchers

 avatar  avatar  avatar

hej's Issues

Sidebar

Lists:

  • Starred labels
  • Starred articles (limit to five or so)
  • Last edited articles (limit to five or so)

Starred articles

Starred articles are listed in the sidebar, but there is also a virtual label "Starred".

View/edit mode for notes

Notes are shown in view mode by default. Need to click "edit" to change to markdown editing mode.

Add a notes list

The /notes route lists all notes in a sortable table with title, last change, creation date, and labels.

Simple Authorization

Just provide the secret as an environment variable to the docker container. The login screen just asks for that secret and sends it with every request as a cookie.

To be eventually replaced by the full authorization system in #149.

Quick note entry

Suggests a title ("Note created YYYY-MM-DD hh:mm") and automatically tags it with the "quick note" label.

Labels

Labels can have a name, color, and icon and can be listed in the sidebar if starred.

Add a dashboard

The default route / has a dashboard with useful functionality.

Title handling

Backend

Don't require a title on creation. If no explicit title was set, extract the title from the first header in the body or the first line, if there is no header. Do this on creation and changes.

If the header was set explicitly, set a flag in the DB (exposed via the API), and never change it automatically.

Frontend

The title is not editable by default, it only turns into an input field on click.

If there is no title, use 'Note from YYYY-mm-dd' as title. (Depends on #150.)

Database migrations

Use dbupgrade to automatically migrate the database when necessary when first opening it. Copy the old database to e.g. hej.sqlite.v3 when migrating hej.sqlite from version three and then try the upgrade.

Log the fact that the database was migrated and that the old database file can be removed. Use log level info, but specially configure the logger for this to show the message by default.

Checkpoints

While an edited article will be saved and synced continuously, the app will create "checkpoints", which can be recalled later. A checkpoint will be created under the following circumstances:

  • When the user hits Ctrl-s
  • When the page was changed and the user stops input for five(?) minutes
  • When the page was changed and the user leaves the article
  • When the page was changed and the user opens the article (this can happen if the user closes a page without saving)

The user has the ability to remove checkpoints manually or the add a comment.

Full authorization

Replace the simple authorization system (#143) with a full system. Users and (encrypted) passwords are stored in the database. Session keys are generated using JWT tokens, no sessions are stored server-side. The JWT secret is stored in a file in the data directory.

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.