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.
Live Link to Sophisticated: Explore Sophisticated
- 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 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. π
- 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. ποΈ
- All user routes are under
/api/users/
. - All file routes are under
/api/file/
.
-
Clone the backend repository:
git clone https://github.com/ShuvoProgram/Sophisticated-File-Management.git cd backend
-
Install dependencies:
npm install
-
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
-
Run the backend server:
npm start
The backend will run on
http://localhost:5000
by default.
-
Clone the frontend repository:
git clone https://github.com/ShuvoProgram/Sophisticated-File-Management.git cd frontend
-
Install dependencies:
npm install
-
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
-
Run the frontend development server:
npm run dev
The frontend will run on
http://localhost:5471
by default.