This project is a frontend application built with Next.js and Tailwind CSS that mimics the functionality of a spreadsheet. It features grid rendering, cell editing, basic cell formatting, and additional advanced functionalities like search, filter, undo/redo, and data validation. This project is designed to assess skills in frontend development, state management, and UI/UX design, focusing on performance, responsiveness, and code quality.
zustand
for state management, ensuring persistence during interaction.Clone the repository:
git clone [https://github.com/raman020306/SpreadSheet-App.git]
cd spreadsheet-mimic
Install the dependencies:
npm install
Run the development server:
npm run dev
Open the application in your browser:
http://localhost:3000
Once the application is up and running, you will see a grid of 1000 blank cells. You can click on any cell to edit its content, format the text, validate data input, and utilize the search/filter feature for quick navigation. The undo/redo feature allows you to backtrack or revert changes efficiently.
The grid contains 1000 cells and is optimized for performance to ensure smooth scrolling and interaction. Tailwind CSS is used for styling, ensuring the cells are responsive and styled with grid lines, padding, and font.
Each cell is individually editable, allowing the user to input and store data in memory via zustand
state management. Changes made in any cell are dynamically reflected across the grid.
Data entered into each cell is managed with zustand
to maintain state in memory, ensuring data persists while interacting with the grid.
Grid cells are visually styled with clear grid lines and interactive elements, making the application closely resemble a traditional spreadsheet.
Users can align text to the left, center, or right, and adjust font sizes to customize the presentation of data within each cell.
Data validation is enforced for specific cells. For example, some cells may only accept numeric inputs or specific text patterns to ensure data integrity.
A search and filter mechanism enables quick navigation through the grid, allowing users to easily locate specific data without manual scrolling.
To handle large datasets efficiently, pagination or infinite scrolling is implemented to ensure smooth performance.
Users can undo and redo changes to revert any unwanted edits made to the grid.
This README provides an in-depth guide for users and contributors to understand, install, and utilize the project. Let me know if you'd like to modify or add specific details!
This is my awesome project.