/file-storage

full stack file storage application with organizations, file upload, management, role based authorization. authentication, cron deletes, favorites, trash feature, including many UI components including dialogs, modals, toasts, dropdown, etc.

Primary LanguageTypeScript

File Storage

File Storage is a project aimed at providing secure and efficient file storage solutions. It leverages modern web technologies to offer a reliable platform for storing and managing files.

Features

  • Authentication: Integrate robust authentication with @clerk/nextjs and @clerk/clerk-sdk-node.
  • Form Handling: Utilize react-hook-form and @hookform/resolvers for efficient form handling and validation.
  • UI Components: Access a collection of UI components from Radix UI and Lucide React for building modern interfaces.
  • Real-time Features: Implement real-time features with convex and svix for webhook handling.
  • Styling: Use Tailwind CSS and related plugins for styling and animations.
  • Type Safety: Ensure type safety with zod for runtime type checking and validation.

Getting Started

  1. Installation: Clone the repository and install dependencies.
  2. git clone https://github.com/TaronVardanyan/file-storage.git
    cd file-storage
    bun install
    
  3. Development: Start the development server.
  4. bun dev
    
  5. Building: Build the project for production.
  6. bun build
    
  7. Start: Start the production server.
  8. bun start
    
  9. Lint: Lint the codebase.
  10. bun lint
    
  11. Format: Format the codebase.
  12. bun format
    

Scripts

  • dev: Start the development server using Next.js.
  • build: Build the project using Next.js for production.
  • start: Start the production server using Next.js.
  • lint: Lint the codebase using ESLint.
  • format: Format the codebase using Prettier.

Contributing

We welcome contributions to File Storage! To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/my-feature).
  3. Commit your changes (git commit -am 'Add new feature').
  4. Push to the branch (git push origin feature/my-feature).
  5. Create a new Pull Request.

License

This project is licensed under the MIT License.