{"id":28255199,"url":"https://github.com/itsferdiardiansa/insight-board","last_synced_at":"2026-02-27T01:32:17.937Z","repository":{"id":291365662,"uuid":"976505562","full_name":"itsferdiardiansa/Insight-Board","owner":"itsferdiardiansa","description":"InsightBoard is a modern, AI-powered SaaS dashboard platform that helps businesses turn raw data into actionable insights.","archived":false,"fork":false,"pushed_at":"2025-09-29T13:18:48.000Z","size":86814,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-29T15:24:01.594Z","etag":null,"topics":["apple-auth","google-auth","jest","nextjs","react-testing-library","supabase","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://insight-board.ferdiardiansa.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itsferdiardiansa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-02T08:21:16.000Z","updated_at":"2025-09-29T14:09:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"25e68843-82cc-491e-bf1f-4a50b764cc94","html_url":"https://github.com/itsferdiardiansa/Insight-Board","commit_stats":null,"previous_names":["itsferdiardiansa/insight-board"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/itsferdiardiansa/Insight-Board","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FInsight-Board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FInsight-Board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FInsight-Board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FInsight-Board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsferdiardiansa","download_url":"https://codeload.github.com/itsferdiardiansa/Insight-Board/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsferdiardiansa%2FInsight-Board/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29880749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"ssl_error","status_checked_at":"2026-02-26T23:50:46.793Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-auth","google-auth","jest","nextjs","react-testing-library","supabase","tailwindcss","typescript"],"created_at":"2025-05-19T21:13:15.307Z","updated_at":"2026-02-27T01:32:17.918Z","avatar_url":"https://github.com/itsferdiardiansa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Insight Board\n\n[![Next.js](https://img.shields.io/badge/Next.js-000?logo=nextdotjs\u0026logoColor=white)](https://nextjs.org/)\n[![React](https://img.shields.io/badge/React-20232a?logo=react\u0026logoColor=61dafb)](https://reactjs.org/)\n[![TanStack Query](https://img.shields.io/badge/TanStack%20Query-FF4154?logo=react-query\u0026logoColor=white)](https://tanstack.com/query)\n[![Jest](https://img.shields.io/badge/tested%20with-jest-99424f.svg?logo=jest)](https://jestjs.io/)\n[![GitHub Actions](https://github.com/itsferdiardiansa/Insight-Board/actions/workflows/test.yaml/badge.svg)](https://github.com/itsferdiardiansa/Insight-Board/actions/workflows/test.yaml)\n\nA modern, scalable SaaS application built with **Next.js (TypeScript)**. It provides AI-powered dashboards by integrating data from services like Stripe, Shopify, and Google Analytics.\nDesigned with **TDD**, component-based architecture, and full test coverage using **Jest** and **React Testing Library**.\n\n![homepage](https://github.com/user-attachments/assets/6430339c-c0ad-4881-a122-dd7bd588e135)\n\n---\n\n## Features\n\n- **Next.js (TypeScript)** – Fast, SEO-optimized React framework\n- **NextAuth.js** – Secure authentication and provider logins\n- **API Integrations** – Connect Stripe, Shopify, GA4 (OAuth-based)\n- **Smart Dashboards** – Auto-generated KPIs with customizable layouts\n- **TDD Workflow** – Unit and integration testing baked in from day 1\n- **TailwindCSS** – Utility-first styling for fast UI iteration\n- **CI/CD Ready** – Deploy on Vercel with preview URLs and GitHub Actions\n\n\n## Tech Stack\n\n| Area          | Stack                        |\n|---------------|------------------------------|\n| Framework     | Next.js (TypeScript)         |\n| Styling       | Tailwind CSS                 |\n| Auth          | NextAuth.js                  |\n| Testing       | Jest, React Testing Library  |\n| Deployment    | Vercel                       |\n\n\n## Getting Started\n\n#### 1. Clone \u0026 Install\n\n```bash\ngit clone https://github.com/itsferdiardiansa/Insight-Board.git\ncd insight-board\npnpm install\n```\n\n#### 2. Create .env(?.local|)\n```bash\nDATABASE_URL=postgres://...\nNEXTAUTH_URL=http://localhost:3000\nNEXTAUTH_SECRET=your-secret\nSTRIPE_CLIENT_ID=...\nSTRIPE_SECRET=...\nGOOGLE_CLIENT_ID=...\nGOOGLE_CLIENT_SECRET=...\nSHOPIFY_API_KEY=...\n```\n\n#### 3. Start Dev Server\n```bash\npnpm run dev\n```\nthen visit `http://localhost:3000`\n\n\n## Testing\n\n#### Run All Tests\n```bash\npnpm test\n```\n\n#### Watch Mode\n```bash\npnpm run test:watch\n```\n\n#### Coverage Report\n```bash\npnpm run test:coverage\n```\n\n#### Example test file:\n```ts\n// button/__tests__/index.tsx\nimport { render, screen } from '@testing-library/react';\nimport Button from '..';\n\ntest('renders button with text', () =\u003e {\n  render(\u003cButton label=\"Click me\" /\u003e);\n  expect(screen.getByText('Click me')).toBeInTheDocument();\n});\n\n```\n\n\n## Deployment\n\n#### Recommended: Vercel\n- Push code to GitHub\n- Import the repo into Vercel\n- Set environment variables\n- Vercel auto-detects and deploys your Next.js app\n\n#### Roadmap\n- TDD setup with Jest + RTL\n- OAuth integration with Stripe, GA, Shopify\n- Drag-and-drop dashboard editor\n- Multi-tenant support\n- Admin portal for usage analytics","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsferdiardiansa%2Finsight-board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsferdiardiansa%2Finsight-board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsferdiardiansa%2Finsight-board/lists"}