A modern, secure, and extensible file management system with a plugin architecture.
- π Advanced file management with drag-and-drop support
- π Plugin system for extending functionality
- π₯ Built-in media viewer (images, videos, PDF)
- π File editor with syntax highlighting
- π Full-text search with metadata indexing
- π File versioning and history
- π Enterprise-grade security
- π¨ Customizable themes
- πΎ Automated backups
- π± Responsive design for mobile devices
- Backend: Java 17, Spring Boot 3.x
- Frontend: React 18, Tailwind CSS
- Database: PostgreSQL
- Security: JWT, Spring Security
- Testing: JUnit, React Testing Library
- Build Tools: Maven, npm
- CI/CD: GitHub Actions
- Java 17 or higher
- Node.js 18 or higher
- PostgreSQL 13 or higher
- Maven 3.8+
- Git
- Clone the repository
git clone https://github.com/your-username/G_Files.git
cd G_Files
- Setup database
sudo -u postgres psql
CREATE DATABASE gfiles;
CREATE USER gfiles WITH ENCRYPTED PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE gfiles TO gfiles;
- Configure application
cp .env.example .env
# Edit .env with your settings
- Run the application
# Backend
cd backend
mvn spring-boot:run
# Frontend
cd frontend
npm install
npm start
Visit http://localhost:3000
to access G_Files.
- CSRF protection
- Rate limiting
- Anti-virus scanning
- XSS prevention
- Input validation
- JWT authentication
- Content Security Policy
- Encrypted storage
See Plugin Development Guide for creating custom plugins.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.