Sort of a roadmap
I am failing to get the right topics according to currently logged in user.
Observations:
- jwt savec in http-cookie might not be the right thing to do
- btw: the http-cookie fails to persist on refresh
- might need to implement a logout to make the process clearer
- unsure about which "jwt" is sent to server with each requests (could be due to http cookie). Seems I always request the server from the same user.
What I shoudl probably do:
- Not JWT http-cookie storage anymore (server only sends token via json response)
- Client stores the JWT in memory
- The refreshToken can be stored in http cookie
- In order to call refreshToken I need to provide userId, check if this is the right thing or if I could avoid that (removing the need of userId)
- On refresh: try to get a new token with refresh token, if not working go to login
- If successful: store the jwt
Login is now pretty well in place. Now is the time to improve the topic experience
- Add sorting and filtering options in topic requests
- Implement sort by last update and filter by status on topics view
- Try to watch the topics in the topics view so that when a topic is created or edited it is refreshed on the page (tried to used watch without much success yet, try again another time)
- Make Open topic work
- Make the edit topic work
- Make change topic status work
- Make delete topic status work
- Try the imageService for topic images
- Fix implementation of croppie in avatar and topic-form (fixed adding croppie css)
- Display preview image in topic preview and topic detail
- Create a Value Converter to "select" the best image from the image array when displaying an image (ex: | getFileId:400)
- Fix getUser in mini-user component
- Implement function API tests for topics filtering and sorting
- Logout
- Create friendship API
- Manage friendships API
- Add tests for friendships
- Add test for listing my friendships, including sort and filters
- Add test that someone "else" tries to remove the friendship of someone else (must fail)
- Add test including the new "friend" fieldResolver
- Crypt Messages before creating or after editing
- Have a simple thing in place to ensure that the topics in the view are decrypted easily (should be pretty simple with the "myShare" prop
- Only request privateKey if not in memory
- Work on a name (Sunago)
- Web font: GFS Neohellenic
- Simplify overall design (avoid complex thing with headbar and bottombar for now, make it white if possible)
- Have the logo (sunago) always in main screen top left
- Display tabs below (like Twitter)
- Identify issue with dirty-checker when updating to latest Aurelia
- Open up an issue if needed, reach for help
- Identify issue with Safari and latest update of fast (fast-provider)
- Open up an issue if needed, reach for help
- Migrate to sunago.app
- Start the conversation page
- Deploy so we can use it on mobile device
## 27.11.2020 - Messages
- Messages view
## 28.11.2020 - Messages
- Fix refreshToken issue (fixed by not sending the jwt with the refreshToken mutation)
- Fix login button / form / enter (seem ok, to be confirmed)
- Check how the "return" button on login form could be called something else (not 100% so far)
- Make preview work with the right datas (except prayer)
- Memorize previous username for fast login
## 29.11.2020 Prayer Model
- Define prayer model
- Display prayers inside conversation
- Add tests for prayers
## 01.12.2020 Praying View (playlist)
- Playlist with nice navigation (the cool thing from previous app was that when you mention that you pray you automatically get the next topic)
## 02.12.2020 Server cache with Redis
- Add a cache layer with redis (https://medium.com/@haimrait/how-to-add-a-redis-cache-layer-to-mongoose-in-node-js-a9729181ad69)
## 05.12.2020
- Upgrade to latest FAST
- Mark prayer as answered
- Nicer head buttons
- If topic is archived, only keep those where I'm owner
- Create a nice flag for answered topics (so they can be clearly identified)
- Nicer topic form
- Work on Profile page so we can edit current profile avatar, name
## 07.12.2020 - Apollo Cache improvements
- Do some research on possible cache patterns
- Save edited topic when submitting updates
## 16.12.2020 - Go for an app ready to be tried
- Crypt messages
- Import data
- Import images
## 17.12.2020 - Prepare for production
- Test Jelastic deployment
- Send code by SMS for registration
- Script to start node automatically in NodeJS container
- Import data in production
## 25.12.2020 - Use Page Visibility API
- Check login state when back to foreground
- Try to fetch topics again when back to foreground
- Improve webpack config for better caching and PWA update
## 26.12.2020 - Prod env
- Update prod scripts for Jelastic
- Restore the storage container in Jelastic env
## 27.12.2020 - Many fixes
- Upgrade Aurelia to last version
- Fix redis issues
- Refactoring of CryptingService, with more precise crypting/decrypting and detection of crypted values
- Scroll to bottom when opening a conversation
- Fetch new data silently when possible, using apollo cache otherwise
- Nl2br in messages
- Set cache-control for images so that the browser can safely cache them for long time
## 29.12.2020 - Viewed by
- Add a "viewedBy" property to topic, messages and prayers model so we can add personalised notifications based on who viewed what
## 30.12.2020 - Prod client
- Fix cookie (same-site not strict)
- Fix image service (mode not production in webpack)
## 31.12.2020 - Prod client
- Add a badge in "list" and "settings" screen for nb of updates and nb of friends requests
- Fix friendship list cache and cache clearing
- Backups scripts for DB and files
- Fixes for better UX
- Version number on login screen
## Early January
- Activity feed
- Cordova App (TestFlight)
- Start pray from messages view must start with current topic
## 9.1.2021 - Improve frienship flow
- Add little helps along the process
- Improve wording
- Only display notification for friends requests, not friends waiting for reply
- Add friendships in activity
- Search for friends by phone number
- When removing a friendship: also remove all shares from (in both directions)
## 11.1.2021 - Improve UX with help screens and illustrations
- Ensure the screen looks amazing even without content (after first registration)
- Help tooltips
- Translation i18n
- Web client ready in english
- Add a client version checker (for API) in order to inform user of out-of date client version and require update
- Change password / no password, only SMS
- Ensure a nice register process
- Diminish the number of refresh tokens available per user
- Add a version from GIT in API ? Or use the build version ?
- Improve Apple / Demo user account with new mobile only system
- Stack AppNotifications (so we can see several)
- Solidify notification start and settings
- Solid testing of notifications
- Translation: external files and notification translation
-
Create more realistic tests scenario including user registration and increased users friendships, refresh token and admin accounts
-
Create a way to have a realistic staging
-
Create SMS API account
-
Ackknoledgment (incl. illustrations)
-
Backups every night
-
Avoid REDIS to crash
-
Work on the TODO's
-
Optimize bundles with code splitting (https://webpack.js.org/guides/code-splitting/)
-
Create tests with image upload (if not yet)
-
Allow owner to give "owner" role on their topics
-
Cache images
-
Fix class-validator warning, check if I need it for the project