Skip to content

Scaler-Innovation-Labs/Excel_Clone_SST_OS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Excel Clone React Project

🎯 Project Overview

A lightweight Excel clone built with React.js, designed as a learning project for students to understand React concepts, state management, and collaborative development through GitHub. This project implements basic spreadsheet functionality and provides opportunities for enhancement through structured issues and features.

πŸŽ“ Learning Objectives

  • Understanding React components and state management
  • Working with complex user interactions
  • Implementing grid-based data structures
  • Collaborative development using Git and GitHub
  • Writing maintainable and scalable code
  • Testing and debugging web applications

πŸš€ Features

Current Features

  • Interactive spreadsheet grid
  • Cell selection and editing
  • Formula bar
  • Column and row headers (A, B, C... and 1, 2, 3...)
  • Real-time cell updates

Planned Features (via Issues)

  • Keyboard navigation
  • Basic formula support
  • Cell styling and formatting
  • Copy/paste functionality
  • Multiple cell selection
  • Data persistence
  • CSV import/export
  • And more...

πŸ’» Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm (v6 or higher)
  • Git

Installation

  1. Clone the repository
git clone https://github.com/Scaler-Innovation-Labs/Excel_Clone_SST_OS.git
cd Excel_Clone_SST_OS
  1. Install dependencies
npm install
  1. Start the development server
npm start
  1. Open http://localhost:3000 in your browser

πŸ—οΈ Project Structure

excel-clone/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ ExcelClone.js     # Main spreadsheet component
β”‚   β”‚   β”œβ”€β”€ Toolbar.js        # (to be created)
β”‚   β”‚   └── FormulaBar.js     # (to be created)
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ formulas.js       # (to be created)
β”‚   β”‚   └── cellUtils.js      # (to be created)
β”‚   β”œβ”€β”€ App.js
β”‚   └── index.js
β”œβ”€β”€ public/
β”œβ”€β”€ package.json
└── CONTRIBUTING.md

🀝 How to Contribute

For Students

  1. Fork the repository
  2. Find an issue you want to work on
  3. Create a new branch for your feature
git checkout -b feature/issue-number
  1. Make your changes
  2. Commit and push your changes
git add .
git commit -m "Descriptive commit message"
git push origin feature/issue-number
  1. Create a Pull Request

Issue Labels

  • good-first-issue: Perfect for beginners
  • enhancement: New features or improvements
  • bug: Something isn't working
  • documentation: Documentation improvements
  • advanced: Complex features requiring more experience

πŸ“ Development Guidelines

  • Follow the existing code style
  • Write meaningful commit messages
  • Add comments for complex logic
  • Update documentation as needed
  • Write tests for new features
  • Test your changes thoroughly

πŸ§ͺ Testing

# Run tests
npm test

# Run tests in watch mode
npm test -- --watch

πŸ“š Available Scripts

npm start        # Start development server
npm test         # Run tests
npm run build    # Build for production
npm run lint     # Check code style

πŸ› οΈ Built With

πŸ“Š Project Milestones

  1. Basic Spreadsheet Functionality

    • Cell editing
    • Basic navigation
    • Formula bar
  2. Data Management

    • Formula support
    • Copy/paste
    • Data validation
  3. Advanced Features

    • Multiple sheets
    • Cell formatting
    • Import/export

🎯 Learning Resources

πŸ€” Common Issues and Solutions

Cell Updates Not Reflecting

  • Ensure you're using the state update function correctly
  • Check if the cell coordinates are correct
  • Verify event handlers are properly bound

Formula Parsing Issues

  • Check formula syntax
  • Verify cell references exist
  • Look for circular dependencies

πŸ”’ Code of Conduct

Please review our Code of Conduct before contributing to the project.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Acknowledgments

  • Inspired by Microsoft Excel and Google Sheets
  • Built as an educational project for learning React
  • Thanks to all contributors who participate in this learning journey

πŸ“ž Support

If you need help:

  1. Check the documentation
  2. Look through existing issues
  3. Create a new issue with a detailed description
  4. Ask for help in the discussions section

πŸš€ Next Steps

  1. Pick an issue to work on
  2. Join project discussions
  3. Share your progress
  4. Help others learn

Happy coding! πŸŽ‰

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors