diff --git a/TODO.md b/TODO.md index 8842c93..f447bfe 100644 --- a/TODO.md +++ b/TODO.md @@ -8,19 +8,105 @@ - [ ] Add tests for site manager - [ ] Fix React SSR error handling - [ ] Add React error boundaries -- [ ] Use strings as ids for big decimals -- [ ] Integrate Google (and other social fb/twitter) logins +- [x] Use strings as ids for big decimals TODO verify + +- [ ] Social logins + - [ ] GitHub + - [ ] Twitter + - [ ] Google + - [ ] Facebook - [ ] Framework development - [ ] Improve comments - [ ] Generate docs using using `typedoc` - [ ] Generate framework website using Docusaurus - [ ] Split framework projects and actual projects -- [ ] Experiment with styled components + +- [ ] Styled components + - [x] SSR + - [ ] Replace bulma/blommer css framework with styled components + - [ ] Check if restyped still significantly slows down TS compilation + - [x] Use JSON schema instead of @Entity decorators - [x] Extract database into a separate module - [x] Replace tslint with eslint: https://github.com/typescript-eslint/typescript-eslint -- [ ] Do not import express when importing jsonrpc + +- [x] Do not import express when importing jsonrpc +- [ ] Custom subdomains +- [ ] Customizable user profile + +- [ ] Privacy + - [ ] User account creation with username/password only + - [ ] Preventing fake accounts/spam + - [ ] Using moderation techniques described below + - [ ] Require proof of work during acct creation? + +- [ ] Email + - [ ] Verification emails + - [ ] Password reset emails + - [ ] Digest emails (low priority) + +- [ ] Web push notifications + - [ ] Replies to parent comment + - [ ] User references via @-prefix + +- [ ] Realtime notifications + - [ ] Socket.io w/ Redis + - [ ] Investigate if web push notifications would eleminate immediate need for socket.io/redis + +- [ ] Benchmarks + - [ ] Test how long would it take to load and sort comments full tree of 100.000 comments + - [ ] Investigate what could be done to keep loading this many comments without hogging the server + - [ ] Reduce JS payload size + +- [ ] Pagination + - [ ] offset/limit or last id + - [ ] Check TypeORM's offset/limit support + +- [ ] Embedding comments + - [ ] Iframe + - [ ] Automatically resize iframe height + - [ ] JavaScript + +- [x] Add ability to bootstrap server in cluster mode + +- [ ] OpenGraphScraper + - [x] Add support for scraping URLs + - [ ] Do we need to respect robots.txt? + - [ ] How can Telegram cache site contents using InstantView? Is it legal? + - [ ] Prevent DDoS by scanning sites in queue (tasq module should help) + - [ ] Disable access to localhost, local IP addresses, etc + - [ ] Think about fallback if site is not scanned within 4 seconds + +- [ ] Project name + +- [ ] Comments representation + - [x] Tree (reddit/hn-style) + - [ ] Forum + - [ ] Q&A (forum w/ 1st level comments) + +- [ ] Voting + - [x] Add ability to upvote + - [ ] Add (optional) ability to dowmvote + - [ ] Add per-site configuration to enable/disable voting + +- [ ] Spam + - [x] Add ability to mark comments as spam + +- [ ] Moderation + - [ ] Add ability for admins/moderators to approve comments + - [ ] Add ability for admins/moderators to ban users + - [ ] Add ability for admins/moderators to hide comments by default + +- [ ] Monitoring + - [ ] Prometheus + - [ ] Server side errors + - [ ] Client side errors + +- [ ] SaaS Payments + +- [ ] License + # JSONRPC