Responsive PWA to manage lists, books and more. Uses ReactJS and Django.
Demo (Username: guest, Password: 123)
- 📱 Complete PWA integration with automatic updates (installable as phone app)
- 🌌 Pretty Three.js space background (via React Three Fiber)
- ⚡ High performance input UI (no re-renders!) with React Hook Form (schema validation via Yup)
- Material UI styling
- Stylish, responsive scrollbars on desktop and mobile
- Virtualized scrolling
- State management with Redux
- Query caching with RTK Query
- Sortable tree for Literature genres
- Random daily wallpaper
- (Debounced) autosave on type
🔒 Security
- 🔑 2FA TOTP support with support for remembered browsers
- Session Management with ability to log out other sessions
- Session Hijacking Protection (via country code)
- 🔉 Notification on new logins
📰 Lists
- Undo
- Support for recurring tasks
- View completed tasks
📘 Literature
- Goodreads/Google Books API lookup
Password Generation
- Cryptographically secure in-browser password generation (via Web Crypto API)
- Have I Been Pwned cached database lookup
- Automatic rebuild on
git pushvia Github Actions
- Directories:
kebab-case - Component directories:
PascalCase - Component .js files:
PascalCase - Non-component .js files:
camelCase
app/: app-wide setup and globals that depend on all the other folders e.g. - auth, notifications, network error/loading statusesmodules/:Module1/: No subdirectoriesModule1.jsmoduleApi.js: RTK Query definitions viainjectEndpointsmoduleSlice.js: Module specific actions/reducers viacreateSlice
shared/:components/Shared components e.g.GenericListstatic/: Images, fontsuseSomeHook.jsutil.js
test/: Mocks (MSW) and testsmocks/:module1/module1Api.js: MSW definitions for module1's apimodule1FakeData.js
browser.js: MSW endpoint
.github/workflows/main.ymlconfigures the CI process- Check for circular dependencies with
madge -c srcbefore pushing tomaster