Skip to content

sophisticated file management system in Next.js and Material-UI (MUI) that allows users to create, manipulate, and manage various file types (images, PDFs, etc.) with advanced drawing and editing capabilities.

Notifications You must be signed in to change notification settings

ShuvoProgram/Sophisticated-File-Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sophisticated File Management: Organizing Your Digital Assets

Overview

sophisticated file management system using Next.js and Material-UI (MUI). It enables users to create, manipulate, and manage various file types (images, PDFs) with advanced drawing and editing capabilities. Key features include file upload, drawing tools, annotations, real-time collaboration, version control, customizable UI, data encryption, batch processing, and mobile compatibility.

Demo

Live Link to Sophisticated: Explore Sophisticated

Technologies

Next.js Tailwind CSS TypeScript Fabric Node.js Express.js MongoDB Material UI Express Validator Jsonwebtoken Axios

Features πŸš€

Frontend Features πŸš€πŸŽ¨

  • Immersive UI/UX: Delight in a visually captivating and responsive user interface powered by Next.js and Material-UI, ensuring an engaging user experience.
  • Authentication System: Secure user authentication using NextAuth.js, providing seamless login and user management functionalities.
  • Responsive Layout: Crafted with MUI components, ensuring adaptability across various devices for optimal usability.

File Management πŸ“πŸ’»

  • File Upload: Implement robust functionality supporting image and PDF uploads for versatile file management.
  • File Viewer: Introduce a user-friendly file viewer to display uploaded files, enhancing accessibility and usability.

Drawing and Editing Tools πŸŽ¨πŸ–ŒοΈ

  • Canvas Integration: Incorporate a dynamic canvas component enabling users to draw shapes, lines, and freehand drawings with precision.
  • Drag-and-Drop: Facilitate intuitive interaction with shapes and lines through drag-and-drop functionality, enhancing user control.
  • Customization Options: Enable users to adjust color selections and line thickness, alongside an eraser tool for seamless editing.

Advanced Drawing Capabilities 🌟🎨

  • Text Tool: Implement a versatile text tool for adding and editing text directly on the canvas, enhancing creative possibilities.
  • Layer Support: Enable creation and management of multiple layers, fostering complex and organized drawings.
  • Precision Tools: Implement snapping and alignment guides, along with measurement tools for precise drawing accuracy.

Annotations and Collaboration πŸ“πŸ€

  • Annotation Features: Empower users with the ability to annotate and comment on specific file sections, fostering collaboration and feedback.
  • Real-time Collaboration: Utilize WebSockets for seamless real-time collaboration, enhancing teamwork and productivity.

Export and Security πŸš€πŸ”’

  • File Export: Provide functionality to save edited files locally or in the cloud (e.g., AWS S3), and export files as images or PDFs for versatile usage.
  • Role-Based Access: Implement role-based access control (admin, editor, viewer) to manage permissions and ensure data security.

Version Control and Customization πŸ”„πŸŽ¨

  • Versioning: Enable version control to track file changes and facilitate rollback to previous versions, ensuring data integrity.
  • Template Management: Offer a library of templates for user convenience, enhancing productivity and customization options.

Additional Features and Compatibility πŸŽ‰πŸ“±

  • Customizable UI: Allow users to personalize themes and toolbar configurations, ensuring an adaptable and user-friendly interface.
  • Data Encryption: Implement robust encryption protocols to safeguard file storage and transfer, prioritizing data security.
  • Mobile Optimization: Ensure seamless functionality and responsiveness on mobile devices, supporting touch interactions for drawing and editing tasks.

Sophisticated File Management API Endpoints πŸ“

User Routes πŸ‘€

  • POST /api/users/register: Register a new user. πŸ“
  • POST /api/users/login: Log in a user. πŸ”
  • GET /api/users/:id: Get details of a specific user. πŸ“„
  • PATCH /api/users/my-profile: Update user's profile. πŸ”„
  • GET /api/users: Get all users. πŸ“‹

File Routes πŸ“„

  • POST /api/file/upload: Upload a file. πŸ“€
  • GET /api/file/:id: Get details of a specific file. πŸ“„
  • PUT /api/file/:id: Update a file. πŸ”„
  • DELETE /api/file/:id: Delete a file. πŸ—‘οΈ

Route Usage πŸš€

  • All user routes are under /api/users/.
  • All file routes are under /api/file/.

Installation πŸš€

Backend Installation

  1. Clone the backend repository:

    git clone https://github.com/ShuvoProgram/Sophisticated-File-Management.git
    cd backend
  2. Install dependencies:

    npm install
  3. Set up environment variables:

    Create a .env file in the root directory and add the following:

    ```env
    
    MONGODB_URI=YOUR_MONGODB_CONNECTION_STRING
    
    JWT_SECRET=YOUR_JWT_SECRET
    JWT_REFRESH_SECRET=YOUR_JWT_REFRESH_SECRET
    JWT_EXPIRES_IN=1d
    JWT_REFRESH_EXPIRES_IN=1d
    
    NODE_ENV=development
    
    BCRYPT_SALT_ROUNDS=12
    
    CLOUDINARY_CLOUD_NAME=YOUR_CLOUDINARY_CLOUD_NAME
    CLOUDINARY_API_KEY=YOUR_CLOUDINARY_API_KEY
    CLOUDINARY_API_SECRET=YOUR_CLOUDINARY_API_SECRET
    
  4. Run the backend server:

    npm start

    The backend will run on http://localhost:5000 by default.

Frontend Installation

  1. Clone the frontend repository:

    git clone https://github.com/ShuvoProgram/Sophisticated-File-Management.git
    cd frontend
  2. Install dependencies:

    npm install
  3. Set up backend API URL:

    Create a .env file in the root directory and add the following:

    NEXT_PUBLIC_BACKEND_API=http://localhost:5001/api/v1
    GOOGLE_CLIENT_ID=your-google-client-id
    GOOGLE_CLIENT_SECRET=your-google-client-secret
    SECRET=YourSecretKeyForApplication
  4. Run the frontend development server:

    npm run dev

    The frontend will run on http://localhost:5471 by default.

About

sophisticated file management system in Next.js and Material-UI (MUI) that allows users to create, manipulate, and manage various file types (images, PDFs, etc.) with advanced drawing and editing capabilities.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published