An open API service indexing awesome lists of open source software.

https://github.com/filipe-oliveiraa/java-messaging-app


https://github.com/filipe-oliveiraa/java-messaging-app

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# Messaging App Project _(Not Finished)_

## **Overview**
This project is a **messaging application** built as part of my learning journey in Java development. The application demonstrates core software engineering principles, object-oriented programming, and API development using modern Java technologies.

---

## **Objective**
The primary objective of this project is to create a functional and scalable messaging system that allows users to send and retrieve messages organized in rooms. This project showcases my ability to design, implement, and manage backend systems while focusing on clean code, scalability, and modern practices.

---

## **Features**
- Room-based messaging system.
- Support for multiple message types:
- Text Messages
- Image Messages
- File Messages
- RESTful API endpoints for managing rooms and messages.
- Clear and modular class design with adherence to object-oriented principles.

---

## **Technologies to be Used**
- **Java 17**: Core language for implementing backend logic.
- **Spring Boot**: Framework for building RESTful APIs.
- **Maven**: Dependency management and build automation.
- **Postman**: API testing and debugging.
- **JSON**: Data serialization format for API communication.
- **Git**: Version control for managing project changes.
---

## **Skills Demonstrated**
1. **Object-Oriented Programming (OOP)**:
- Designed a class hierarchy with inheritance for `Message` subclasses.
- Encapsulated behavior in the `Room` class to manage message collections.
2. **API Development**:
- Created RESTful endpoints for managing rooms and messages.
- Implemented type-specific handling for text, image, and file messages.
3. **Project Structuring**:
- Used Java packages to organize models and controllers.
- Followed best practices for maintainable and scalable code.
4. **Data Handling**:
- Managed dynamic collections using `List` and `Map`.
- Implemented polymorphism to store and process messages.

---

## **Future Enhancements**
- Add a database for persistent storage of rooms and messages.
- Implement authentication and authorization for secure messaging.
- Build a frontend interface using a modern framework like React or Angular.
- Deploy the application on a cloud platform (e.g., AWS, Azure, or Heroku).