Instant messaging platforms are everywhere. And you’ve probably seen someone typing a message and wondered “what are they typing?”.
Bubble is an instant messaging platform that actually enables real-time exchange of text messages.
In other words, Bubble is all about live texting, reproducing a normal conversation in the online setting.
The user will, therefore, see exactly what the response is, ever since the interlocutor types its first character.
- FastAPI with Python 3.8
- JWT authentication using OAuth2 "password flow" and PyJWT
- React (with Typescript)
- react-router v5 to handle routing
- PostgreSQL for the database
- SqlAlchemy for ORM
- Alembic for database migrations
- Pytest for backend tests
- Prettier/ESLint (Airbnb style guide)
- Docker Compose for easier development
- Nginx as a reverse proxy to allow backend and frontend on the same port
- MaterialUI for styling
- react-admin for the admin dashboard
- Cloud Firestore for chat storage & syncing
- user stories (min 10) - 17 in total, backlog creation - 2p ✅
- design/arhitectura/UML - 2p - ✅
- source control (branch creation, merge/rebase, min 10 commits) - ~100 commits in over 10 branches - 2p ✅
- automatic testing - minim 5 - over 15 tests only for the api (7 written/edited by us, the rest from the boilerplate) - 3p ✅
- bug reporting - 1p ✅
- build tool - used npm build tool to compress and make everything ready for deployment - 1p ✅
- refactoring (min 1), code standards - used PEP8 standard for Python3 and ESLint standard for Typescript / Javascript - 1p ✅
- design patterns - MVC for the backend and React Functional for the front - 1p - ✅