# Community Rule A Next.js application for community decision-making and governance documentation. ## ๐Ÿš€ Getting Started Run the development server: ```bash npm run dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. ## ๐Ÿงช Testing Framework This project includes a comprehensive testing framework with multiple layers of testing: ### Quick Test Commands ```bash # Unit tests with coverage npm test # E2E tests npm run e2e # Performance tests npm run lhci # Storybook tests npm run test:sb ``` ### Test Coverage - โœ… **124 Unit Tests** (8 components + 1 integration) - โœ… **308 E2E Tests** (4 browsers ร— 77 tests) - โœ… **92 Visual Regression Screenshots** - โœ… **Performance Budgets** - โœ… **Accessibility Compliance** ### CI/CD Pipeline - **Gitea Actions** with 7 parallel jobs - **Cross-browser testing** (Chromium, Firefox, WebKit, Mobile) - **Visual regression testing** - **Performance monitoring** - **Code coverage reporting** ๐Ÿ“– **For detailed testing documentation, see [docs/TESTING.md](docs/TESTING.md)** ## ๐Ÿ“š Storybook Development This project includes Storybook for component development and documentation. The setup automatically detects the environment and applies the appropriate configuration. ### Local Development For local Storybook development: ```bash npm run storybook:local # or simply npm run storybook ``` This will: - Start Storybook at `http://localhost:6006` - Use relative paths for assets (no base path) ### GitHub Pages Deployment For GitHub Pages deployment with base path: ```bash npm run storybook:build:github ``` This will: - Build Storybook with `/communityrulestorybook/` base path - Generate files ready for GitHub Pages deployment ### CI/CD Integration The CI pipeline automatically uses the GitHub Pages configuration when building Storybook. ### Configuration The Storybook configuration automatically detects the environment: - **Local development**: No base path, relative assets - **CI/Production**: Base path `/communityrulestorybook/` for GitHub Pages ## ๐Ÿ“‹ Available Scripts ### Development - `npm run dev` - Start Next.js development server - `npm run build` - Build Next.js application for production - `npm run start` - Start Next.js production server ### Testing - `npm test` - Run unit tests with coverage - `npm run test:watch` - Run tests in watch mode - `npm run test:ui` - Run tests with UI - `npm run e2e` - Run E2E tests - `npm run e2e:ui` - Run E2E tests with UI - `npm run e2e:serve` - Start dev server and run E2E tests - `npm run lhci` - Run performance tests - `npm run test:sb` - Run Storybook tests ### Storybook - `npm run storybook:local` - Start Storybook for local development - `npm run storybook:github` - Start Storybook with GitHub Pages configuration - `npm run storybook:build` - Build Storybook for local deployment - `npm run storybook:build:github` - Build Storybook for GitHub Pages - `npm run storybook` - Start Storybook with current configuration ## ๐Ÿ—๏ธ Project Structure ``` community-rule/ โ”œโ”€โ”€ app/ # Next.js app directory โ”‚ โ”œโ”€โ”€ components/ # React components โ”‚ โ”œโ”€โ”€ layout.js # Root layout โ”‚ โ””โ”€โ”€ page.js # Homepage โ”œโ”€โ”€ tests/ # Test files โ”‚ โ”œโ”€โ”€ unit/ # Unit tests (8 components) โ”‚ โ”œโ”€โ”€ integration/ # Integration tests โ”‚ โ””โ”€โ”€ e2e/ # E2E tests (4 test suites) โ”œโ”€โ”€ docs/ # Documentation โ”‚ โ””โ”€โ”€ TESTING.md # Comprehensive testing guide โ”œโ”€โ”€ .storybook/ # Storybook configuration โ”œโ”€โ”€ .gitea/ # Gitea Actions workflows โ”‚ โ””โ”€โ”€ workflows/ โ”‚ โ””โ”€โ”€ ci.yml # CI/CD pipeline โ””โ”€โ”€ public/ # Static assets ``` ## ๐Ÿ”ง Technology Stack - **Framework**: Next.js 15 + React 19 - **Styling**: Tailwind CSS 4 - **Testing**: Vitest + Playwright + Lighthouse CI - **Documentation**: Storybook 9 - **CI/CD**: Gitea Actions - **Hosting**: Gitea (Git hosting) ## ๐Ÿ“– Documentation - **[Testing Framework](docs/TESTING.md)** - Comprehensive testing guide - **[Storybook](http://localhost:6006)** - Component documentation (local) - **[GitHub Pages Storybook](https://your-username.github.io/communityrulestorybook/)** - Public component docs ## ๐Ÿค Contributing 1. **Fork the repository** 2. **Create a feature branch**: `git checkout -b feature/amazing-feature` 3. **Write tests first** (see [Testing Guide](docs/TESTING.md)) 4. **Make your changes** 5. **Run tests**: `npm test && npm run e2e` 6. **Commit changes**: `git commit -m "feat: add amazing feature"` 7. **Push to branch**: `git push origin feature/amazing-feature` 8. **Create Pull Request** ### Development Workflow - All changes must have tests - CI pipeline runs automatically on PRs - Visual regression tests ensure UI consistency - Performance budgets must be met - Accessibility standards must be maintained ## ๐Ÿ“„ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. # Test from working commit