Skip to content

Latest commit

 

History

History
153 lines (103 loc) · 3.81 KB

File metadata and controls

153 lines (103 loc) · 3.81 KB

Gridfinity Calculator

CI Code Quality CodeQL SAST Deploy codecov

This project is a web-based calculator for designing custom Gridfinity layouts, built with React, Vite, and Tailwind CSS.

Features

  • Easy-to-use calculator interface
  • Customizable grid dimensions
  • Real-time visual preview
  • Export designs for 3D printing
  • Support for various 3D printer sizes

Getting Started

Prerequisites

  • Node.js (version 22.5 or later recommended)
  • npm or yarn

Installation

  1. Clone the repository:

    git clone https://github.com/ntindle/gridfinity-space-optimizer.git
  2. Navigate to the project directory:

    cd gridfinity-space-optimizer
  3. Install dependencies:

    npm install

    or

    yarn install

Development

To run the development server:

npm run dev

or

yarn dev

The application will be available at http://localhost:8080 by default.

Testing

Run the test suite:

npm test

Run tests with coverage:

npm test -- --coverage

Linting

Check code quality:

npm run lint

Building for production

To create a production build:

npm run build

or

yarn build

CI/CD

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

Contributing

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

License

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

Acknowledgments

  • 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