Skip to content

Commit bf8eaa0

Browse files
authored
Code owners (#166)
* Add CODEOWNERS file to define code ownership and required reviewers * Enhance README with detailed features and architecture overview
1 parent 4ac05ca commit bf8eaa0

3 files changed

Lines changed: 116 additions & 1 deletion

File tree

.github/CODEOWNERS

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# GitHub CODEOWNERS file
2+
# This file defines code ownership and required reviewers for pull requests
3+
# Documentation: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
4+
5+
# Default owner for everything in the repository
6+
* @mwarman
7+
8+
# Infrastructure as Code (AWS CDK)
9+
/infrastructure/ @mwarman
10+
11+
# GitHub configuration and workflows
12+
/.github/ @mwarman
13+
14+
# Documentation
15+
/docs/ @mwarman

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.github/CODEOWNERS

README.md

Lines changed: 100 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,106 @@ There are some limitations to the JSON Placeholder APIs. The primary limitation
3333

3434
When using the application, you may sign in with any of the JSON Placeholder [Users](https://jsonplaceholder.typicode.com/users). Simply enter the _Username_ value from any user in the API and use any value for the _Password_. For example, try username `Kamren` or `Samantha` and password `abc123`.
3535

36-
## About
36+
## Features
37+
38+
### Core Architecture
39+
40+
- **Type-safe development** with TypeScript strict mode enabled across the entire codebase
41+
- **Modular component architecture** with separation of concerns: common shared components, hooks, utilities, and page-specific components with co-located tests
42+
- **React Router DOM** for declarative, nested routing with lazy-loaded code splitting and `Suspense` boundary integration
43+
- **Context API + custom hooks** for global state management (authentication, settings, notifications, API configuration)
44+
- **Efficient re-renders** with React hooks best practices, memoization where appropriate, and optimized context selectors
45+
46+
### Component Library & Common Components
47+
48+
- **shadcn/ui** base component library with full customization via Tailwind CSS variants and CVA (Class Variance Authority)
49+
- **Pre-built common components** including Header, Layout, Dialog, Dropdown, Menu, Accordion, Tabs, Card, Badge, and more
50+
- **Icon system** with Font Awesome and Lucide icons for consistent iconography across the application
51+
- **Accessible, semantic HTML** components following WAI-ARIA guidelines for inclusive user experiences
52+
- **Composition-based component patterns** encouraging reusability and maintainability over implementation inheritance
53+
54+
### Form Management & Validation
55+
56+
- **React Hook Form** for performant, flexible form handling with minimal re-renders
57+
- **Zod schema validation** providing compile-time type safety and runtime validation
58+
- **Custom field components** integrating with shadcn/ui for consistent styled form inputs
59+
- **Error handling and display** with user-friendly validation messages and field-level feedback
60+
- **Form state persistence** via browser storage utilities for seamless user experience
61+
62+
### API Integration & State Management
63+
64+
- **Axios HTTP client** with centralized configuration, request/response interceptors, and error handling
65+
- **TanStack Query (React Query)** for declarative data fetching, caching, synchronization, and background updates
66+
- **Custom API hooks** (e.g., `useGetCurrentUser`, `useGetSettings`) encapsulating common API operations
67+
- **Optimistic updates** with automatic cache invalidation and rollback on errors
68+
- **Request deduplication** preventing duplicate API calls for the same resource
69+
- **Error boundaries and fallback UI** for graceful error handling throughout the application
70+
71+
### Styling & Theme Management
72+
73+
- **Tailwind CSS** utility-first CSS framework for rapid UI development and consistent design system
74+
- **CSS custom properties** for dynamic theming, supporting light/dark mode and custom color schemes
75+
- **CVA (Class Variance Authority)** for managing component styles and variants in a type-safe manner
76+
- **Responsive design utilities** ensuring mobile-first, adaptive layouts across all screen sizes
77+
- **React Spring** animations library for smooth, physics-based transitions and interactive elements
78+
79+
### Internationalization (i18n)
80+
81+
- **React i18next** framework for multi-language support with lazy-loaded language files
82+
- **Dynamic language switching** without page reload
83+
- **Translation management** with namespace support for organized locale files
84+
85+
### Advanced UI Features
86+
87+
- **TanStack Table** for powerful, headless table/datagrid components with sorting, filtering, and pagination
88+
- **Recharts** composable charting library for data visualization and analytics
89+
- **Modal dialogs and dropdowns** with context-aware positioning and keyboard navigation
90+
- **Toast notifications system** for non-intrusive user feedback (success, error, warning, info states)
91+
- **Loading and skeleton UI** with `Suspense` boundaries for streaming updates and better perceived performance
92+
93+
### Configuration Management
94+
95+
- **Environment-based configuration** using `.env` files with `VITE_` prefixed variables for frontend access
96+
- **Type-safe config initialization** with Zod schema validation at application startup
97+
- **Runtime configuration switching** without redeployment (e.g., API endpoints, feature flags)
98+
- **Development vs. production config separation** with sensible defaults and override capabilities
99+
100+
### Code Quality & Testing
101+
102+
- **Vitest** as the core unit testing framework with V8 code coverage support
103+
- **React Testing Library** for user-centric component testing (prefer testing behaviors over implementation)
104+
- **Mock Service Worker (MSW)** for seamless API mocking in both tests and Storybook
105+
- **Co-located test files** (`.test.ts`, `.test.tsx`) adjacent to source for easy maintenance and discovery
106+
- **80% minimum code coverage** requirement ensuring testability and reliability
107+
- **Test utilities and helpers** (`test-utils.tsx`) for consistent test setup and common operations
108+
- **ESLint** static analysis with TypeScript-aware rules for code consistency
109+
- **Prettier** automatic code formatting ensuring uniform style across contributions
110+
111+
### DevOps & Infrastructure
112+
113+
- **AWS CDK** infrastructure-as-code framework for provisioning and managing cloud resources
114+
- **CloudFront distribution** for global CDN delivery with S3 bucket integration
115+
- **Automated deployments** via AWS CDK with separate environment configurations (dev/qa/prd)
116+
- **Environment-based tagging** of AWS resources for cost allocation and governance
117+
- **GitHub Actions CI/CD** workflows for continuous integration, code quality checks, and automated deployments
118+
119+
### Documentation & Developer Experience
120+
121+
- **Storybook UI** for isolated component development, documentation, and visual testing
122+
- **Inline code comments** explaining complex logic and architectural decisions
123+
- **Project documentation** guides covering configuration, infrastructure, shadcn/ui setup, and more
124+
- **Type definitions** and JSDoc comments for better IDE intellisense and developer handoff
125+
- **Consistent file organization** following established patterns enabling developers to navigate and extend the codebase confidently
126+
127+
### AI-Assisted Coding
128+
129+
- **GitHub Copilot instructions** (`copilot-instructions.md`) providing comprehensive guidance for agentic AI coding
130+
- **Project-specific coding standards** documented for AI assistants including TypeScript conventions, React patterns, and testing practices
131+
- **Architecture and file organization** guidance enabling AI agents to generate consistent, maintainable code
132+
- **Tool restrictions and best practices** defined for AI-assisted code generation, refactoring, and documentation
133+
- **Seamless AI integration** with VS Code for leveraging GitHub Copilot and other AI agents within your development workflow
134+
135+
## Technology Stack
37136

38137
This project was bootstrapped with the [Vite](https://vitejs.dev/) React TypeScript template.
39138

0 commit comments

Comments
 (0)