A secure file sharing and collaboration platform built with Spring Boot (Java) backend and React (TypeScript) frontend.
This project consists of two main parts:
backend: Spring Boot application with JWT authentication, file operations, and PostgreSQL integrationfrontend: React application with TypeScript and Tailwind CSS for styling
- User authentication (register, login, logout)
- File operations (upload, download, list, delete)
- Secure storage of files and metadata
- Clean, responsive UI
- Java 17
- Spring Boot 3.1.x
- Spring Security with JWT authentication
- PostgreSQL for data storage
- Lombok for reducing boilerplate code
- Swagger/OpenAPI for API documentation
- React 18
- TypeScript
- React Router for navigation
- Axios for API communication
- Tailwind CSS for styling
- React Hot Toast for notifications
- Java 17
- Node.js and npm
- PostgreSQL
- Create a PostgreSQL database named
filesharing - Navigate to the
backenddirectory - Copy
.env.exampleto.envand configure your database credentials - Run the backend using Gradle:
./gradlew bootRun - The API will be available at
http://localhost:8080/api
- Navigate to the
frontenddirectory - Copy
.env.exampleto.env - Install dependencies:
npm install - Start the development server:
npm start - The frontend will be available at
http://localhost:3000
Once the backend is running, you can access the Swagger UI at http://localhost:8080/swagger-ui.html to explore and test the API endpoints.
- Sharing files with other users
- File versioning
- Comments and collaboration features
- Folder organization
- Enhanced permission system