A collection of free online interactive calculators and math tools built with React. Features Pascal's Triangle Calculator, Matrix Calculator, Mechanical Calculator, and more. All tools include step-by-step solutions, visual feedback, and educational resources. Perfect for students, teachers, and professionals.
Popular Tools:
- ๐งฎ Mechanical Gear Calculator
- ๐ Matrix Calculator (coming soon)
- ๐บ Pascal's Triangle Calculator (coming soon)
- ๐ข And many more interactive math tools!
Deployed on GitHub Pages with full SEO optimization.
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository:
git clone <your-repo-url>
cd interections- Install dependencies:
npm install- Start development server:
npm startThe app will open at http://localhost:3000
interections/
โโโ src/
โ โโโ pages/ # Individual page components
โ โ โโโ ExamplePage.js # Example component
โ โ โโโ index.js # Pages registry
โ โโโ App.js # Main app with routing
โ โโโ App.css # App styles
โ โโโ index.js # Entry point
โ โโโ index.css # Global styles
โโโ public/ # Public assets
โโโ scripts/
โ โโโ create-page.js # Script to create new pages
โ โโโ clean.js # Clean build artifacts
โโโ .github/
โ โโโ workflows/
โ โโโ deploy.yml # GitHub Actions deployment
โโโ package.json
๐ See PAGE_CREATION_GUIDE.md for the complete guide covering:
- Step-by-step page creation (script & manual methods)
- SEO best practices and metadata requirements
- Naming conventions and file structure
- Content guidelines and examples
- Testing and deployment procedures
npm run create:page your-tool-nameThis automatically:
- โ Creates the component file
- โ Registers it in routing
- โ Sets up basic SEO metadata
- โ Generates the correct URL structure
See INTERACTIVE_TOOLS_GUIDE.md for:
- Popular tool categories (Calculators, Visualizations, Linear Algebra, etc.)
- SEO-friendly description templates
- Popular keywords to target
- Examples: Pascal's Triangle, Matrix Inverse, etc.
npm startVisit http://localhost:3000 to see the home page with all components listed.
Visit http://localhost:3000/xyz to see a specific component.
npm run buildThis creates an optimized production build in the build/ directory.
npm run cleanThe repository is configured with GitHub Actions to automatically deploy to GitHub Pages when you push to the main branch.
Setup Steps:
- Go to your repository on GitHub
- Navigate to Settings โ Pages
- Under Source, select GitHub Actions
- Update
homepageinpackage.jsonto match your repo name:{ "homepage": "/your-repo-name" } - Push your changes to the
mainbranch - The workflow will automatically build and deploy your app
If you prefer to deploy manually:
npm run build
npm run deployNote: Make sure you have gh-pages installed and configured with your GitHub credentials.
Update the homepage field in package.json to match your GitHub repository name:
{
"homepage": "/your-repo-name"
}This ensures all routes work correctly on GitHub Pages.
| Command | Description |
|---|---|
npm start |
Start development server |
npm run build |
Build for production |
npm test |
Run tests |
npm run create:page <name> |
Create a new page component |
npm run clean |
Remove build artifacts |
npm run deploy |
Deploy to GitHub Pages (manual) |
- Single React App: One React application with React Router
- Multiple Pages: Each page is a single React component in
src/pages/ - Automatic Routing: Pages are automatically registered and routed
- Home Page: Lists all available components with links
- Unique URLs: Each component has its own URL like
/xyz,/abc, etc.
npm run create:page xyzThis creates:
src/pages/XyzPage.js- Your component file- Registers it at route
/xyz - Makes it appear on the home page
Then edit src/pages/XyzPage.js to add your interactive component code!
- Make sure
homepageinpackage.jsonmatches your repo name - Ensure you're using
BrowserRouterwithbasename(already configured) - Check that GitHub Pages is set to use GitHub Actions as the source
- Make sure the component is registered in
src/pages/index.js - Check that the component name matches the route (kebab-case)
- Restart the dev server after adding new pages
GPL-2.0
Feel free to add new interactive components! Each component should be self-contained and independent.