This project is a web-based calculator for designing custom Gridfinity layouts, built with React, Vite, and Tailwind CSS.
- Easy-to-use calculator interface
- Customizable grid dimensions
- Real-time visual preview
- Export designs for 3D printing
- Support for various 3D printer sizes
- Node.js (version 22.5 or later recommended)
- npm or yarn
-
Clone the repository:
git clone https://github.com/ntindle/gridfinity-space-optimizer.git
-
Navigate to the project directory:
cd gridfinity-space-optimizer
-
Install dependencies:
npm install
or
yarn install
To run the development server:
npm run dev
or
yarn dev
The application will be available at http://localhost:8080
by default.
Run the test suite:
npm test
Run tests with coverage:
npm test -- --coverage
Check code quality:
npm run lint
To create a production build:
npm run build
or
yarn build
This project uses GitHub Actions for continuous integration and deployment:
-
CI Pipeline: Runs on every push and pull request
- Tests across Node.js versions 18.x, 20.x, and 22.x
- ESLint and TypeScript type checking
- Build verification
- Bundle size analysis
-
PR Checks: Automated quality gates for pull requests
- Test coverage reports
- Code quality metrics
- Automated PR comments with status
-
Deployment: Automatic deployment to GitHub Pages on main branch
-
Security:
- CodeQL semantic analysis for JavaScript/TypeScript
- Multiple SAST tools (Semgrep, Snyk, Trivy)
- Secret detection (Gitleaks, TruffleHog)
- Weekly dependency audits
- Automated Dependabot updates
-
Accessibility: Automated WCAG 2.0/2.1 compliance testing
-
Performance: Lighthouse CI and bundle size monitoring
Contributions are welcome! Please feel free to submit a Pull Request.
All pull requests must pass:
- TypeScript type checking
- ESLint with no errors
- All tests passing
- Successful build
This project is licensed under the MIT License. See the LICENSE file for details.
- Gridfinity for the original modular storage system concept
- Vite for the fast build tool and development server
- React for the UI library
- Tailwind CSS for the utility-first CSS framework
- Shadcn UI for the beautiful and customizable UI components