Skip to content

Latest commit

 

History

History
133 lines (99 loc) · 4.26 KB

File metadata and controls

133 lines (99 loc) · 4.26 KB

Learning Resources for FileDuck

📚 Overview

This document contains learning resources, tutorials, and guides for understanding and contributing to FileDuck.

🎯 Core Technologies

Frontend

Backend

Storage & CDN

Database & Caching

Security

🏗️ Architecture Concepts

Monorepo Structure

Learn about monorepo management with Turborepo:

File Upload Strategies

  • Multipart Upload - Splitting large files into chunks
  • Presigned URLs - Secure direct uploads to S3/GitHub
  • Resumable Uploads - Handling interrupted transfers

Security Patterns

  • Zero-Knowledge Architecture - Client-side encryption
  • One-Time Codes - Single-use access tokens
  • Rate Limiting - Protecting against abuse

🛠️ Development Workflow

Getting Started

  1. Review ARCHITECTURE.md for system design
  2. Check CONTRIBUTING.md for contribution guidelines
  3. Read SECURITY.md for security practices

Local Development

# Install dependencies
pnpm install

# Start development servers
pnpm dev

# Run tests
pnpm test

# Build for production
pnpm build

Code Quality

  • ESLint - Linting JavaScript/TypeScript
  • Prettier - Code formatting
  • TypeScript - Type checking

📖 Recommended Reading

Web Development

Cloud & DevOps

Security

🎓 Tutorials & Guides

Building Similar Features

  • File Upload with Progress: Learn about XMLHttpRequest and FormData
  • Client-Side Encryption: Explore Web Crypto API
  • Real-time Updates: WebSockets and Server-Sent Events
  • Progressive Web Apps: Service Workers and offline functionality

Performance Optimization

  • Code Splitting: Lazy loading routes and components
  • Image Optimization: Compression and lazy loading
  • Caching Strategies: Browser cache, CDN, and Redis

🤝 Community & Support

📝 Next Steps

  1. Explore the Codebase: Start with apps/vue-app/src/ and apps/api/
  2. Run Locally: Follow the Quick Start guide in README.md
  3. Make Small Changes: Fix typos, update docs, add comments
  4. Build Features: Pick an issue labeled "good first issue"
  5. Share Knowledge: Write tutorials, create videos, help others

Happy Learning! 🚀

For questions or suggestions about these learning resources, please open an issue or submit a pull request.