A modern, feature-rich Google Drive clone built with Ruby on Rails 8, featuring a beautiful UI with Tailwind CSS and comprehensive file management capabilities.
- File Upload & Storage: Upload files up to 100MB with automatic file type detection
- Folder Organization: Create nested folders with unlimited depth
- File Sharing: Share files and folders with other users with view/edit permissions
- Search: Full-text search across files and folders
- Starring: Star important files and folders for quick access
- Storage Management: Track storage usage with 5GB free tier
- Modern UI: Clean, responsive design inspired by Google Drive
- Real-time Updates: Live storage usage and file statistics
- Bulk Operations: Upload multiple files at once
- File Preview: Automatic file type detection with appropriate icons
- Breadcrumb Navigation: Easy folder navigation
- Mobile Responsive: Works perfectly on all devices
- User Authentication: Secure login with Devise
- Access Control: Granular permissions for shared content
- File Validation: Type and size restrictions
- Secure Downloads: Protected file access
- Backend: Ruby on Rails 8.0.2
- Database: PostgreSQL
- Authentication: Devise
- File Storage: Active Storage (local/S3)
- Frontend: Tailwind CSS, Font Awesome
- JavaScript: Stimulus, Turbo
- Icons: Font Awesome 6.4.0
- Ruby 3.4+
- PostgreSQL
- Node.js (for asset compilation)
-
Clone the repository
git clone <repository-url> cd PaperVaultRails
-
Install dependencies
bundle install npm install
-
Database setup
bin/rails db:create bin/rails db:migrate
-
Start the server
bin/dev
-
Visit the application
http://localhost:3000
- Email, password, name
- Storage usage tracking
- Relationships to folders and documents
- Name, parent folder (tree structure)
- User ownership
- Color customization
- Starring functionality
- File attachment via Active Storage
- File type detection
- Size tracking
- Access statistics
FolderShare: Share folders with usersDocumentShare: Share individual documents- Permission levels (view/edit)
- Header: Logo, search bar, user menu, storage indicator
- Sidebar: Navigation menu, quick actions, storage info
- Main Content: Dynamic content area with responsive grid
- Colors: Blue primary (#4285f4), consistent with Google Drive
- Typography: Clean, readable fonts
- Icons: Font Awesome for consistent iconography
- Spacing: Tailwind's spacing system for consistency
# Database
DATABASE_URL=postgresql://localhost/papervault_development
# File Storage (optional)
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
AWS_REGION=us-east-1
AWS_BUCKET=your_bucketBy default, files are stored locally. To use S3:
- Add AWS credentials to your environment
- Update
config/storage.ymlto use S3 - Set
Rails.application.config.active_storage.service = :amazon
kamal setup
kamal deploy- Set up your production environment
- Run database migrations
- Precompile assets
- Start the application server
The application includes Progressive Web App capabilities:
- Installable on mobile devices
- Offline support (basic)
- App-like experience
- CSRF protection
- SQL injection prevention
- File type validation
- Size limits enforcement
- Secure file downloads
- User authentication and authorization
# Run all tests
bin/rails test
# Run specific test files
bin/rails test test/models/user_test.rb- Database indexing for fast queries
- Efficient file storage with Active Storage
- Optimized asset delivery
- Responsive design for all screen sizes
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Google Drive's design and functionality
- Built with modern Rails best practices
- Uses Tailwind CSS for beautiful, responsive design
PaperVault - Your secure cloud storage solution built with Rails 8