systemz / hometab Goto Github PK
View Code? Open in Web Editor NEWApp for organizing nerd's home
License: MIT License
App for organizing nerd's home
License: MIT License
Related: #40
Tagging files is much more fun when it's a form of roulette
Artifact builds aren't available to anonymous users on GitHub.
Probably we should just run rclone via CI on master branch to upload to some bucket with short commit in filename.
From my own experience, markdown plaintext files are the best solution for blog posts. It's resistant to standards changing and lacks vendor lock-in.
https://gohugo.io/ works nicely for generating blogs.
Unfortunately, creating posts when you have the idea is a chore.
Typing out creation date, uploading some images to buckets, resizing to thumbs, this takes some effort.
We can create some sort of temp storage when you can easily draft a post and then when convenient just export it or copy paste to "real" editor.
ProseMirror should be ideal for this, we have markdown support and image upload support almost out of the box:
Alternatively: https://codemirror.net/6/
We can probably just fix out current note system and add uploading to object storage on backend.
Selecting what bucket we want to use and URL alias for them would be nice, then we can have nice links to images in posts.
Currently we add DB records one by one, which is sloooow.
We can stack up to 100 - 1000 records and then insert them all.
Let's call it nano google docs but for markdown.
As with tags, counters need edit and delete options :)
There is no option to edit or fully remove tags.
Triggering actions from Tasker to HomeTab or from HomeTab to Tasker can be useful later with reminders or smart home integration.
URLs to check:
We can easily identify identical files on imageboard to that we have already in library by calculating md5 and applying base64
cat x.jpg | openssl dgst -md5 -binary | openssl enc -base64
We can simplify logging to mobile app by showing device token in form of QR code.
This should integrate nicely with peer discovery #1
Mobile app should be able to scan QR code with token to prevent user from copy-pasting or worse - typing manually.
Token should be pretty long to be secure but it's in reverse to being comfortable to user to type it.
We should be able to show some random files from collection
We can simplify connecting mobile app to backend by detecting backend instances on LAN.
After detection we can show list of available backends to use one click join.
Useful URLs:
Currently video files loaded directly after going to their full size url doesn't support rewind etc.
Workaround is F5 after loading to use browser cache set earlier with etag and cache expire headers.
Links:
https://stackoverflow.com/questions/36540610/how-to-serve-http-partial-content-with-go
https://www.sanarias.com/blog/115LearningHTTPcachinginGo
We can use this endpoint:
Before large image loads from disk we can show some low res, low size preview loaded from DB
https://github.com/woltapp/blurhash
We need more Go tests.
This lib can be useful:
Usually we use just use repeatedly just few of them, yet we must search for it constantly.
It would be nice to have quick links above datatable, just like google drive have tiles about main list of files, we just need names and tags in small tiles.
Backend should be already done or needs just misc adjustment.
We already have endpoint for last counters for android app:
HomeTab/internal/server/main.go
Line 99 in 414d5e1
HomeTab/internal/server/api_counter.go
Line 13 in 414d5e1
We can choose most used functions related to tasks/counters and put them in small desktop app to trigger tasks from taskbar.
Native app with image viewer can be nice too.
Consider those libs:
First, check what colorful elements there are:
buttons, toolbars, checkboxes, dialog options...
Quite a few and all need one vision.
Then, choose the right colors from:
https://vuetifyjs.com/en/styles/colors/#material-colors
Lastly, maybe implement all colors as it was done here
https://github.com/SystemZ/HomeTab/blob/master/frontend/src/main.ts
for the buttons. Next color changes will be much easier :)
Add new device/project buttons blend with toolbar, making them too hard to see.
For sharing, it can be useful to crop image:
Currently right sidebar is shown on all pages.
We need it only on "Images" page.
Currently there's mockup of projects data, so it should be swapped for getting it from backend.
Notes for the future:
Device endpoint needs additional events in DB to correctly show device on Settings page. It should not. README command (dev-seed) doesn't provide enough data & there is no way to add data without manually inserting it into DB.
INSERT INTO `devices` (`id`, `user_id`, `name`, `token`, `token_push`, `created_at`, `updated_at`, `deleted_at`) VALUES
(1, 1, 'PhoneX', 'ea2f5fc2-8fc9-11eb-b2f9-2fb84f6e38f4', 'v609234pclq0mamocusx3a', '2021-03-28 13:30:17', '2021-03-28 13:30:17', NULL),
(2, 1, 'Zphone', '0bae9ada-8fcc-11eb-96a4-bf39709cff3e', 'wcqd3uqj8jmf7q1xwevfzx', '2021-03-28 13:30:17', '2021-03-28 13:30:17', NULL);
INSERT INTO `events` (`id`, `user_id`, `device_id`, `code`, `val_str`, `val_int`, `created_at`) VALUES
(1, 1, 1, 1, NULL, 69, '2021-03-28 13:39:41'),
(6, 1, 1, 2, NULL, NULL, '2021-03-28 13:39:41'),
(9, 1, 1, 1, NULL, 42, '2021-03-28 13:39:41'),
(10, 1, 1, 3, 'Never Gonna Give You Up', NULL, '2021-03-28 13:39:41'),
(11, 1, 1, 4, 'Rick Astley', NULL, '2021-03-28 13:39:41'),
(12, 1, 1, 5, NULL, NULL, '2021-03-28 13:39:41');
Those two inserts solve the problem.
After migration from gitlab, we just need to set CI_COMMIT_SHORT_SHA
in CI env somehow.
Github actions seems to have less envs than gitlab CI and have only long SHA in GITHUB_SHA
We can also just set long SHA and just trim it in app :)
Pantry module would help stop wasting food and can be used to quickly generate menu from what is left in fridge, counters etc.
As a example, it should work like micro warehouse software, eg.
Barcode scanner could be used to quickly enter items into system after shopping.
For future RSS reader, we can generate feed with aggregated news source: https://newsapi.org/.
As a start, we can just create endpoint which will provide RSS/Atom feed of those news from API.
Next we can implement some filtering options via title or content.
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.