Before getting started, ensure you have the following:
-
Node.js:
- Install from nodejs.org.
- Recommended version:
14.x
or higher.
-
npm (Node Package Manager):
- Included with Node.js. Verify installation:
npm -v
- Included with Node.js. Verify installation:
-
React:
- Basic understanding required. Learn more at the React documentation.
-
TypeScript:
- Familiarity with TypeScript. Learn more from the TypeScript documentation.
To set up the Real-Time Figma Clone:
- Clone the Repository:
git clone https://github.com/srosama/figma-clone.git cd figma-clone/figma-clone
- Install Dependencies:
npm install
- Start the Development Server:
npm run dev
- Open the Application:
Navigate to
http://localhost:5173
in your browser.
- React.js
- React-router
- Vite
- TypeScript
- Liveblocks
- Fabric.js
- Shadcn
- Firebase
- MongoDB (NoSQL)
- GSAP
- Tailwind CSS
- Follow & Create SDLC (Software Development Life Cycle): Plan, design, develop, test, deploy, and maintain the application systematically.
- Intermediate in React: Ensure a solid understanding of React concepts and best practices.
- Algorithmic Thinking: Solve problems efficiently with algorithmic principles.
- Fundamentals of Tools and Libraries: Master the tools and libraries used in the project.
- Design Patterns for JavaScript and React: Write scalable, maintainable code using design patterns.
- Intermediate Level with TypeScript: Write type-safe code and leverage TypeScript's features.
- Real-Time Knowledge: Implement real-time collaboration with Liveblocks.
- Serverless Backend with Firebase: Utilize Firebase for authentication, database, and cloud functions.
- Intermediate Level with NoSQL (MongoDB): Manage and query MongoDB effectively.
- Concurrency (Asynchronous/Synchronous): Handle asynchronous operations and concurrency in JavaScript.
- Documentation: Maintain clear and comprehensive documentation.
- Software Architecture and Best Practices: Design with scalability and best practices in mind.
- Understanding Technical Debt: Manage technical debt for long-term project health.
- Multi-Cursors: Allows multiple users to collaborate simultaneously by showing individual cursors.
- Cursor Chat: Enables real-time chat within the collaborative environment.
- Displays a list of currently active users in the collaborative environment, offering visibility into who is engaged.
- Attach comments to specific elements on the canvas, facilitating communication and feedback on design components.
- Tools for generating a variety of shapes on the canvas for diverse design elements.
- Import images onto the canvas to expand the range of visual content in your design.
- Adjust properties of design elements to customize and fine-tune visual components.
- Draw freely on the canvas to promote artistic expression and creative design.
- Reverse (undo) or restore (redo) previous actions, providing flexibility in design decisions.
- Use keyboard shortcuts for actions like copying, pasting, deleting, and triggering features such as cursor chat and reactions.
- Manage design elements with functions for deletion, scaling, moving, clearing, and exporting the final design for external use.
- Explore advanced features including code architecture, advanced React hooks, and reusability.