Build a Robust Multi-Tenant Node.js Server Application using modern web technologies. The focus is really on the server-side application.
- Express web framework using Typescript
- SQLite database with raw SQL
- Asynchronous REST APIs
- Use of middleware for JWT token authentication. No framework is used
- WebSocket (socket.io) for push notifications
- Proper error handling to make server production hardened
- Docker and Nginx
- Cloud deploy to Heroku and Vercel
- Interaction using a React-UI frontend
- Ability to register new users
- Create/delete rooms
- Join/leave rooms
- Broadcast messages within rooms
- Message history persistence
- Recover state from database on restart
- Support users joining from multiple devices.
- The NodeJS application is deployed on Heroku using docker. I used the same port for both http and websocket because I don't know how to set multiple ports for Heroku.
- The React front-end is deployed on Vercel.
You can find the react front-end demo site at booth-react.vercel.app