A secure Email parody app where users can connect and officially talk with their Github friends !
- Functional Requirements
- Non-Functional Requirements
- Database Design
- High Level Diagram
- APIs
- Tech Stack Used
-
Compose a New Message:
- Users can create and compose new messages.
-
Send a Message by User ID:
- Users can send messages to other users by specifying their IDs.
-
View List of Messages:
- Display a list of all sent and received messages.
-
Message Folders:
- Categorize messages into folders (Received, Sent, Important, User-Defined Folders).
-
Reply to Messages:
- Users can reply to individual messages or reply to all users of a specific message.
-
View Single Message:
- Users can view a single message from the list.
-
High Availability:
- Ensure the system is highly available to users.
-
High Scalability:
- Design for scalability to handle a growing user base.
-
Authentication:
- Implement user authentication for secure access.
Details:
- PK (Partition Key)
- CK (Clustering Key)
GET /homepage
GET /composeMessage
POST /sendMessage
GET /messageView
POST /replyMessage
POST /replyAll
- Spring Boot
- ThymeLeaf (No fancy frontend framework for a focus on building a highly scalable backend)
- Spring Security
- Apache Cassandra
- Git (Version Control System)
- IntelliJ IDEA (IDE)
git clone https://github.com/Sharath-majjigi/MailBox
- Create an account in Astra DB.
- Follow this tutorial to connect the database to the application.
- Update the
application.yml
file with the keys generated during the setup.
-
First make sure you have docker on your machine if not install one docs
-
Once the docker daemon is up, run the command:
docker build -t your_image_name .
which will build docker image of the MailBox application.
-
To run the image you can execute:
docker run your_image_name
to run it in detached mode you can execute :
docker run -d your_image_name
-
Now you can access mailbox application on the ports you have exposed, by default mailbox runs in 8080 port:
http://localhost:8080
Use your GitHub credentials to log in to the application.
- Enter the GitHub username(s) in the "To" address.
- Add a subject and body to your message.
- Click "Submit" to send your message!
Thats it ! Your friend who have an account will have unread message in his inbox now he can reply to it or compose seperate message.