Chat app powered by foam. Simple text messaging for now, but long term goal to send FOAM-lets to chat memebers to enable easier FOAM collaboration.
By default the app serves data out of /opt/foamchat
Set up this directory by doing
$ sudo mkdir /opt/foamchat
$ sudo chown <USER> /opt/foamchat
Build and run by doing
$ ./build.sh
If you want to serve out of a different directory use
$ ./build.sh "--appHome:/path/to/app/home"
- data is not real time, listeners need to be fixed
- registration doesnt work, need to set default new group (probably just needs themeing)
- styling/themeing
- sender names/timestamps
- sender avatars
- better scrolling/layout of chat messages
- permissions
- improve generic foam3 many to many picker
- mobile
- PWA, whats the right serviceworker strategy
- need to figure out deployment and non-deployment
- offline
- pwa caching
- sync dao
- notifications
- custom controller?
- richer messages
- rich text (links/styling)
- attachments (images/gifs/videos)
- FOAM-lets
- end to end encryption
Currently we do "JAR" builds on demand on the server.
There is a custom run.sh script on the server that just calls build.js
node foam3/tools/build.js -c --jar -w -Jprod
The server has a custom systemd service that invokes the run script.
When running in --jar mode, the http server detects the webroot as being inside the jar and only serves that rather than the whole source tree like we see in normal builds