A comprehensive Laravel-based collaborative file management system that enables users to organize files into groups, manage permissions, and track activities with detailed reporting.
- User Authentication & Authorization - Secure login/registration with Laravel Breeze
- Group-Based Organization - Create and manage file groups with multiple users
- File Upload & Management - Upload, download, edit, and delete files
- Permission Control - File-level permissions and ownership management
- Activity Reporting - Comprehensive audit trail of all file operations
- File Size Limits - Configurable file size restrictions per group
- File Count Limits - Set maximum number of files per group
- Bulk Operations - Select and update multiple files simultaneously
- File Status Tracking - Track file processing status (active/completed)
- User Management - Add/remove users from groups
- Responsive Design - Modern UI built with Tailwind CSS
- PDF Generation - Generate reports using Laravel DomPDF
- Laravel 10 - PHP web framework
- PHP 8.1+ - Server-side programming language
- MySQL - Database management system
- Tailwind CSS - Utility-first CSS framework
- Laravel Breeze - Authentication scaffolding
- Laravel Sanctum - API authentication
- Laravel DomPDF - PDF generation
- Vite - Frontend build tool
- PHP 8.1 or higher
- Composer
- Node.js & NPM
- MySQL Database
- Web server (Apache/Nginx) or Laravel Valet
git clone <repository-url>
cd FileManagment# Install PHP dependencies
composer install
# Install Node.js dependencies
npm install# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generateUpdate your .env file with database credentials:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=file_management
DB_USERNAME=your_username
DB_PASSWORD=your_passwordphp artisan migratenpm run buildphp artisan serveVisit http://localhost:8000 to access the application.
FileManagment/
βββ app/
β βββ Http/Controllers/ # Application controllers
β β βββ Auth/ # Authentication controllers
β β βββ FileController.php
β β βββ GroupController.php
β β βββ ProfileController.php
β β βββ ReportController.php
β βββ Models/ # Eloquent models
β β βββ File.php
β β βββ Group.php
β β βββ Report.php
β β βββ User.php
β βββ Policies/ # Authorization policies
βββ database/
β βββ migrations/ # Database migrations
β βββ factories/ # Model factories
β βββ seeders/ # Database seeders
βββ resources/
β βββ views/ # Blade templates
β β βββ auth/ # Authentication views
β β βββ files/ # File management views
β β βββ groups/ # Group management views
β β βββ layouts/ # Layout templates
β βββ css/ # Stylesheets
β βββ js/ # JavaScript files
βββ public/
βββ uploads/ # File storage directory
- Register/Login to your account
- Navigate to Groups section
- Click "Create Group"
- Set group name, file count limit, and file size limit
- Add users to the group by email
- Select a group from the Groups list
- Upload files using the "Add File" button
- Edit file details (only files you own)
- Mark files as completed when done
- Delete files when no longer needed
- Access the Reports section
- View activity logs for each group
- Track file operations and user activities
Run the test suite:
php artisan testid,name,email,email_verified_at,password,remember_token,created_at,updated_at
id,name,user_id_creater,files_count,file_size,created_at,updated_at
id,name,status,path,group_id,created_at,updated_at
id,group_id,message,created_at,updated_at
group_id,user_id
- CSRF Protection - All forms protected against CSRF attacks
- File Validation - Uploaded files are validated for type and size
- Permission Checks - Users can only modify files they own
- SQL Injection Prevention - Using Eloquent ORM and prepared statements
- XSS Protection - Output escaping in Blade templates
The application provides RESTful API endpoints for:
- Authentication:
/api/login,/api/register,/api/logout - Groups:
/api/groups(GET, POST, PUT, DELETE) - Files:
/api/files(GET, POST, PUT, DELETE) - Reports:
/api/reports(GET)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- File versioning system
- Advanced search functionality
- File sharing via public links
- Real-time notifications
- Mobile application
- Cloud storage integration
- Advanced reporting dashboard