xy2z / dopenote Goto Github PK
View Code? Open in Web Editor NEW๐ Self-hosted modern webapp for notes - Free and open source - (WORK IN PROGRESS)
Home Page: https://dopenote.gitbook.io/docs/
License: GNU General Public License v3.0
๐ Self-hosted modern webapp for notes - Free and open source - (WORK IN PROGRESS)
Home Page: https://dopenote.gitbook.io/docs/
License: GNU General Public License v3.0
On the login page, if the user has enabled 2fa, the user must enter the correct 2fa code to login.
Only show the 2fa form if both email and password are correct.
The UI is made using Bulma.io
Let me know if you have questions.
Sort the order of the Notebook in the sidebar.
The best UX is to have drag and drop IMO.
I will use Gitbooks for now, maybe with github repo so people can make PRs..
Settings
Customize
In the future this will also be where the user changes color-scheme and compactness
Will add Google Fonts later
When the Docker image is built, it should get the current git tag as an env variable, so in the code we can show what the current version is.
This probably means the Dockerfile should install git, get the latest/current tag, and uninstall/purge git after that.
I was hoping Docker would set this env automatically, but apparently it doesn't.
"footer" means below "sign out" link in the left sidebar.
Maybe also show it in the login/register/forgot-password pages in the footer.
It may be a bug in tiptap editor
https://github.com/antonioribeiro/google2fa-laravel
Under "User settings" it should be possible to enable/disable 2FA using Google Authenticator.
When disabling, user must enter the current 2FA code before succeeding.
Let me know if you have any questions
A view with only Starred notes - from all notebooks.
This should probably also be the default view when opening the webapp.
When writing in the comment, the <title> should change right away - like in the sidebar.
Laravel 5.8 is out https://laravel-news.com/laravel-5-8
See upgrade guide: https://laravel.com/docs/5.8/upgrade
A view of deleted notes - right now they are only soft-deleted.
Sorted by last deleted first.
Buttons
Create a user with email admin@localhost
and password 12341234
Remember to call RegisterController::create_new_user_note($user);
which creates the default note for the user.
Right now it just changes to the first note
If there's more notes in the notebook, pick the first on found.
If not, pick the first note (in another notebook)
Or, maybe show "No notes in this notebook" text when there's no notebooks - and just show that and remove the window.location.hash, so it doesn't change notebook.
Lets say a user has 2 windows open: window-A and window-B.
If the user changes note content in window-A, the change isn't registerd in window-B, unless the user refreshes the page in window-B.
So if the user changes the content of the same note in window-B, the change from window-A is gone.
The issue not just content, it can also be deleted notes, deleted notebooks, new notes, etc.
#1
is definitely the goal, since we need Collaboration anyway - see https://tiptap.scrumpy.io/collaboration
Hi!
You have a stunning application! While application is getting larger it is hard to track errors. Would you mind if I create a feature test to your app?
When loading the app, show a nice loading "screen" untill Vue is complete.
It uses history for the other notes...
So maybe a new editor instance per note?
resources/js/components/EditorContent.vue
file)npm run dev
(or npm run watch
)History should be per note. I'm not sure what a good solution to this bug is, so for now I've disabled history...
EDIT: Backend is done (see PR #123)
So only the UI is missing.
It should be possible to archive notes, just like Dropbox Paper. Archived notes are removed from the notebook and all put in the 'Archive' view. Archived note cannot be edited, just like trashed notes.
When archiving a note, remove the 'star'.
See how 'Starred' and 'Trash' view are done.
Create a new column in the notes db table archived_at
which is a timestamp that can be NULL. The same way deleted_at
(trash) is done.
Use FontAwesome to find a archive icon.
Let me know if you have any questions
If you delete a note and then reload the page, you get a "Note not found" error.
The URL hash note-id should change when the note changes.
When using the mouse back/forward buttons or keyboard back/forward (alt + left/right arrows in Chrome)
the hash changes, but the content doesn't.
See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange
I think the best option will be to export each note as a .html
file in a single zipped file.
It would be nice if each note was put in a directory for each notebook, and trashed notes put in a "trash"
The "Export notes" link should be under "User settings"
Please only do this if you have experience with this, as is could be a potential security vulnerability if the files aren't deleted or the zip isn't deleted after download, etc. I think the best option is the put the file content directly in the zip in memory without saving it to the store, but I haven't researched if it's possible, or could lead to memory issues.
Let me know if you have any questions - I'm open to other solutions
After writing a note title, when you press enter (as you normally would in Word, Paper, Google Docs, etc.) the focus should go to the body editor.
https://laravel.com/docs/6.x/socialite
https://medium.com/employbl/add-login-with-google-to-your-laravel-app-d2205f01b895
First priority is Google, Twitter and Facebook - if it's easy, also add GitHub.
If you have any questions let me know
IE is not supported.
Css color schemes
For v1.0 i think we should have at least 3 themes
Imo we should use pure css color schemes so when the user changes theme (via user settings) it changes immediately without needing to refresh the browser
It's causing merge conflicts.
Also update the Docs 'Setting up dev environment', because npm
is now required and npm run dev
must be run.
Im working on this myself :)
Note action icons (star, delete, restore, perm delete) already have title
set, but a tooltip would be better since it's shown instantly.
It should be set on all elements with note-action
class.
Consider
Both are active
Using Laravel mix
And use npm for 3rd party css, like bulma etc.
So it all should end up in 1 css file
.dockerignore
) - see belownpm run prod
in Dockerfile and gitignore public/js filesdoctrine/dbal
not being installed by composer?Docker image size before cleanup: 628 MB
Remove after build (end of Dockerfile)
Also see https://medium.com/@gdiener/how-to-build-a-smaller-docker-image-76779e18d48a
In User Settings
the user should be able to change editor font family, font size and line height.
IIRC the UI and backend is already done and should work.
The only part missing is the settings is not being used.
Remember to remove the todo
text on user settings page :)
Let me know if you have any questions.
https://tiptap.scrumpy.io/code-highlighting - See bottom of page how to setup.
Use the default theme
Let me know if you have any questions.
Would this be a direction you would want to go for the interface? Was thinking the action buttons can be moved away from the note section and keep the 'action' items to the side bar.
https://codepen.io/CalvinMorett/pen/qgKqWz
https://gist.github.com/calvinmorett/98b2cc4f9dc6f97ee823247e7b6b40b8
In the file /public/js/vue_init.js
I'm setting this.waiting_for_ajax = true
before every ajax (axois) call, and then setting this.waiting_for_ajax = false
when done.
All these needs to be removed, and instead made using interceptors, so it's done automatically by axois.
See https://github.com/axios/axios#interceptors
Right now when you press the TAB key in the editor, the focus changes to the next element.
But instead, it should insert a TAB whitespace in the editor, for code and stuff, if it's pressed while the editor is in focus.
You can add it in the bottom of editor_events()
in resources/js/assets/vue_init.js
Let me know if you have questions.
New task: It should be an option to allow signup at all (app settings).
Care to give a quick run down for how to set this up?
I've just tested with Notejoy and when clicking "delete notebook" a confirm pops up: "Are you sure you want to delete NotebookName and all of its notes?"
If yes, all notes are moved to Trash.
Consider changing to https://tiptap.scrumpy.io/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.