Database Collections
This project utilizes ODMantic as ODM.

Essentially, there are five primary collections that the platform is built on:
- User: A collection containing detailed information about each user who signed into the platform.
- AccessTokens: A collection that keeps track of unique user tokens to ensure only authorized users can log in. It also helps to add a logout functionality on the server side.
- Match: A collection contains matches for each user. A user must have a match to send a message. A match acts as a receiver of a given message.
- Conversation: A collection that maps users to messages. Each records groups the messages between senders and receivers
- Message: A collection contains information about each message type(e.g. text message or media), content of the message...
There is a one-to-many relationship between users and matches. A user can have more than one match. In NoSQL, we can create two collections, namely User and Match.

The User collection also contains enough information to populate the user profile details view.

There is a one-to-many relationship between users and messages; a user can have multiple conversation with other users. Each conversation contains enough information to populate the messages view. In NOSQL, we can create two collections, namely Conversation, and Message. The Conversation collection contains enough information to populate the messages list between each sender and receiver.

