Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #3

Merged
merged 1 commit into from
Oct 23, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 18 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,35 @@
# Cloud chat
# CloudChat API

SecureChat API is a Java Spring Boot application that provides a secure and efficient platform for storing and retrieving files while enabling secure communication between users through encrypted messages. The API leverages Spring Security for robust authentication and authorization mechanisms, ensuring the protection of sensitive user data.
Features

File Storage and Retrieval: Easily upload and retrieve files through RESTful endpoints, making use of PostgreSQL for efficient data management.
## Features

JWT Authorization and Authentication: Implementing JSON Web Tokens (JWT) for secure user authentication and authorization, adding an extra layer of protection to your API.
- **File Storage and Retrieval:** Easily upload and retrieve files through RESTful endpoints, making use of PostgreSQL for efficient data management.

Group Creation and Messaging: Users can create groups, collaborate with each other, and exchange messages within these groups. Messages are encrypted using broadcast encryption for enhanced security.
- **JWT Authorization and Authentication:** Implementing JSON Web Tokens (JWT) for secure user authentication and authorization, adding an extra layer of protection to your API.

Guava Cache Integration: Utilize Guava Cache to store temporary encryption keys, ensuring optimal performance and automatically clearing keys after 12 hours.
- **Group Creation and Messaging:** Users can create groups, collaborate with each other, and exchange messages within these groups. Messages are encrypted using broadcast encryption for enhanced security.

Development Setup
- **Guava Cache Integration:** Utilize Guava Cache to store temporary encryption keys, ensuring optimal performance and automatically clearing keys after 12 hours.

## Development Setup

For simplicity during development, the project utilizes the same database for storing users' public and secret keys. Similarly, sensitive information like JWT secrets and connection settings are stored directly in constants within their respective classes.

Please note that this approach may differ in a production environment where a more secure storage strategy for secrets and keys is recommended.
Project Structure

The project follows best practices for GitHub repositories, ensuring a clean and organized structure. Key components include:

src/main: Contains the main source code of the application.
src/test: Includes test cases to validate the functionality of the implemented features.
config: Holds configuration files for Spring Boot and other settings.
docs: Documentation files for better understanding and usage of the API.

Usage

Clone the repository:
## Project Structure

bash

git clone https://github.com/your-username/secure-chat-api.git

Build and run the application using your preferred IDE or through the command line:

bash

./mvnw spring-boot:run
The project follows best practices for GitHub repositories, ensuring a clean and organized structure. Key components include:

Access the API at http://localhost:8080 and explore the various endpoints documented in the API documentation.
- **src/main:** Contains the main source code of the application.
- **src/test:** Includes test cases to validate the functionality of the implemented features.
- **config:** Holds configuration files for Spring Boot and other settings.
- **docs:** Documentation files for better understanding and usage of the API.

Learning Purpose
## Usage

This project was developed for learning purposes, combining Java Spring Boot, Spring Security, PostgreSQL, and Guava Cache to build a secure and efficient REST API. Feel free to explore, modify, and contribute to enhance the functionalities and security aspects of the SecureChat API.
1. Clone the repository:

Feel free to tweak it according to your preferences!
```bash
git clone https://github.com/your-username/secure-chat-api.git
Loading