Thank you for your interest in contributing to Cellify! This document provides guidelines and information for contributors.
-
Clone the repository:
git clone https://github.com/abdullahmujahidali/Cellify.git cd cellify -
Install dependencies:
npm install
-
Run tests:
npm test -
Build the project:
npm run build
cellify/
├── src/
│ ├── core/ # Core classes (Workbook, Sheet, Cell)
│ ├── types/ # TypeScript type definitions
│ ├── formulas/ # Formula parser and evaluator (planned)
│ └── formats/ # Import/export (Excel, CSV) (planned)
├── tests/ # Test files
├── docs/
│ └── decisions/ # Architecture Decision Records
└── package.json
- We use TypeScript with strict mode enabled
- Run
npm run lintto check for type errors - Write tests for new functionality
- Keep functions focused and well-documented
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Ensure all tests pass (
npm test) - Commit your changes with a descriptive message
- Push to your fork
- Open a Pull Request
When making significant architectural decisions, please document them in the docs/decisions/ directory using the ADR format. See existing ADRs for examples.
When reporting issues, please include:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Your environment (Node version, OS)
Feel free to open an issue for questions or discussions about the project.