mirror of
https://github.com/BobbyWibowo/lolisafe.git
synced 2024-12-14 00:16:21 +00:00
b2f96360ae
Renamed todo.md to TODO.md Edited a todo task
4.2 KiB
4.2 KiB
Todo
Normal priority:
- Improve performance of album public pages,
and maybe paginate them. - Use native lazy-load tag on nojs album pages.
- Use incremental version numbering instead of randomized strings.
- Use versioning in /api/check. To elaborate, make it so that when a version string reported by server is higher than expected, force user to reload the page (which should be all that is needed for users to be loading latest front-end assets). Possibly also use it in /api/tokens/verify, for dashboard page.
- Better
df
handling (system disk stats). To elaborate, either properly show disk usages of directories that have sub-directories, or only show disk usages of whitelisted directories (thumbs, chunks, etc). - Use loading spinners on dashboard's sidebar menus.
- Disable all other sidebar menus when a menu is still loading.
- Collapsible dashboard's sidebar albums menus.
- Add "View uploads" button in "Manage your albums" page. Assuming the sidebar album menus are collapsed, users can optionally use this button as a shortcut, if they already happened to be in that page.
- Change
title
attribute of disabled control buttons in uploads & users lists. - Use Gatsby logo for link to blog.fiery.me on the homepage.
- Automatically create missing columns in
database/db.js
. That way we will no longer need the migration script. - Better error message when server is down.
- Show expiry date in thumbs view.
- Add Select all checkbox somewhere in thumbs view.
- Display renders after API check.
- Enforce pass min/max lengths in dashboard's change password form.
- Add a copy all links to clipboard when there are more than 2 uploads in homepage's uploads history.
- Update fb_share.png.
- I forsaked all
Promise.all()
in favor ofawait-in-for-loop
a while back. I personally think it was fine, considering a lot of them were tasks that required serial processing (continuation be dependant on previous iterations), but maybe I should review the current codes to find any sections that would do just fine, or maybe even great, withPromise.all()
. - Black-ish colorscheme.
Low priority:
- Parallel URL uploads.
- Delete user feature.
- Bulk delete user feature.
- Bulk disable user feature.
- Strip EXIF from images. #51
- DMCA request logs (bare text file will do), and link it in FAQ.
Lowest priority:
- Find a way to detect whether a user had disabled their browser's built-in smooth scrolling capability. We will then use that to decide whether we should use smooth scrolling when auto-scrolling during navigation (for now smooth scrolling is always enabled; and polified if applicable).
- Support fragments for dashboard sidebar menus.
- When registering a new account, check for existing account(s) with the same username case-insesitively (for people who forgets how exactly they wrote their username). But still forces case-sensitivity when trying to login (cause this is a considerable security layer).
Downgraded to lowest priority: This seems pretty annoying to implement (using eitherlike
operator orupper
function seem pretty slow-ish). It seems to be a much better idea to force nocase collation onto username column instead. It'll also improve performance when querying users table by username. But that requires rebuilding existing users table and sacrificing duplicates, which makes it not that good of an idea either. - Perhaps consider switching from Express to Fastify?
- Multi-level sub dirs for uploads. #51
- Mime type blacklist. #51
- Cluster mode (multi-core support). #50
- Tiered accounts. #51