33## Core Technologies
44
55### Ionic + React
6+
67- ** Purpose** : Cross-platform user interface core that enables building high-quality native and web app experiences
7- - ** Benefits** :
8+ - ** Benefits** :
89 - Single codebase for iOS, Android, and web
910 - Extensive library of UI components
1011 - Native device functionality access
1516 - Platform-specific styling
1617
1718### React
19+
1820- ** Version** : Latest stable (18+)
1921- ** Features Used** :
2022 - Functional components
2527## Data Management
2628
2729### Axios
30+
2831- ** Purpose** : HTTP client for making API requests
2932- ** Implementation** :
3033 - Centralized API instance with interceptors
3336 - Request cancellation support
3437
3538### TanStack Query (React Query)
39+
3640- ** Purpose** : Asynchronous state management, caching, and data fetching
3741- ** Key Features** :
3842 - Automatic caching and background refetching
4448## UI Components & Styling
4549
4650### Font Awesome
51+
4752- ** Purpose** : Comprehensive icon library
4853- ** Implementation** :
4954 - Specific icon subset import to reduce bundle size
5055 - Standard usage pattern for consistent icon presentation
5156
5257### Google Fonts
58+
5359- ** Purpose** : Rich typography
5460- ** Fonts Used** :
5561 - Primary: [ Specify primary font]
5662 - Secondary: [ Specify secondary font]
5763 - Loading strategy: Web Font Loader with fallbacks
5864
5965### Remark Markdown
66+
6067- ** Purpose** : Markdown renderer for content display
6168- ** Features** :
6269 - Custom renderers for application-specific components
6370 - Syntax highlighting for code blocks
6471 - Security measures for user-generated content
6572
6673### Tailwind CSS
74+
6775- ** Purpose** : Utility-first CSS framework
6876- ** Configuration** :
6977 - Custom theme extending Tailwind defaults
7482## Testing Infrastructure
7583
7684### Vitest
85+
7786- ** Purpose** : Core test framework
7887- ** Configuration** :
7988 - Component testing setup
8089 - Integration with React Testing Library
8190 - Coverage reporting
8291
8392### React Testing Library
93+
8494- ** Purpose** : User-centric approach for UI component tests
8595- ** Practices** :
8696 - Testing user interactions over implementation details
8797 - Accessibility testing integration
8898 - Common testing patterns and utilities
8999
90100### Mock Service Worker
101+
91102- ** Purpose** : API mocking for tests and development
92103- ** Implementation** :
93104 - Request interception
97108## Cursor Rules & Code Style Guidelines
98109
99110### General Formatting
111+
100112- Indent using 2 spaces
101113- Maximum line length: 100 characters
102114- UTF-8 encoding for all files
103115- LF line endings
104116
105117### React Component Structure
118+
106119``` jsx
107120// Imports grouped by:
108121// 1. React/framework imports
@@ -120,17 +133,17 @@ interface ComponentProps {
120133const ComponentName: React .FC <ComponentProps > = ({ prop1, prop2 }) => {
121134 // Hooks at the top
122135 const [state , setState ] = useState< StateType> (initialState);
123-
136+
124137 // Effects after hooks
125138 useEffect (() => {
126139 // Effect content
127140 }, [dependencies]);
128-
141+
129142 // Event handlers and other functions
130143 const handleEvent = () => {
131144 // ...
132145 };
133-
146+
134147 // Return JSX with consistent formatting
135148 return (
136149 < div className= " tailwind-classes" >
@@ -149,8 +162,9 @@ export default ComponentName;
149162```
150163
151164### Naming Conventions
165+
152166- ** Components** : PascalCase (e.g., ` UserProfile ` )
153- - ** Files** :
167+ - ** Files** :
154168 - Component files: PascalCase matching component name (e.g., ` UserProfile.tsx ` )
155169 - Utility files: camelCase (e.g., ` formatDate.ts ` )
156170- ** Functions** : camelCase (e.g., ` handleSubmit ` )
@@ -159,41 +173,47 @@ export default ComponentName;
159173- ** CSS Classes** : kebab-case (e.g., ` user-profile-container ` )
160174
161175### API and Data Fetching
176+
162177- Use TanStack Query hooks for all data fetching
163178- Centralize API calls in dedicated service files
164179- Implement proper error handling for all requests
165180- Use consistent data transformation patterns
166181
167182### State Management
183+
168184- Prefer local component state for component-specific state
169185- Use Context API for shared state across multiple components
170186- Implement TanStack Query for server state
171187- Document all context providers and their purpose
172188
173189### Testing Standards
190+
174191- Minimum test coverage: 80%
175192- Test user interactions, not implementation details
176193- One test file per component/utility (e.g., ` Component.test.tsx ` )
177194- Use meaningful test descriptions that explain expected behavior
178195
179196### Performance Considerations
197+
180198- Memoize expensive calculations with useMemo
181199- Optimize renders with React.memo for pure components
182200- Use useCallback for function references passed as props
183201- Implement virtualization for long lists
184202
185203### Accessibility Standards
204+
186205- All interactive elements must be keyboard accessible
187206- Proper ARIA roles and attributes where applicable
188207- Maintain proper heading hierarchy
189208- Ensure sufficient color contrast
190209- Support screen readers with appropriate alt text and aria labels
191210
192211## Version Control Guidelines
212+
193213- Use feature branches for all new development
194214- Conventional commit messages (feat, fix, docs, style, refactor, test, chore)
195215- Pull request templates must be followed
196- - Code must pass all automated checks before review
216+ - Code must pass all automated checks before review
197217
198218## Helpful Hints
199219
@@ -229,7 +249,6 @@ Adjust the Prettier configuration as desired.
229249
230250### Prerequistes
231251
232-
233252### Clone the Repository
234253
235254Open the [ repository] [ repo ] in a browser. Follow the instructions to clone the repository to your local machine.
@@ -354,10 +373,6 @@ A detailed test coverage report is created in the `./coverage` directory.
354373
355374> ** NOTE:** This is the command which should be utilized by CI/CD platforms.
356375
357- ### ` npm run test:e2e `
358-
359- Runs all end-to-end (e2e) tests using the Cypress framework. See the [ Cypress CLI] ( https://docs.cypress.io/guides/guides/command-line ) documentation for more information.
360-
361376### ` npm run build `
362377
363378Builds the app for production to the ` dist ` folder.
@@ -408,7 +423,6 @@ This project uses GitHub Actions to perform DevOps automation activities such as
408423- [ Yup] [ yup ]
409424- [ Testing Library] [ testing-library ]
410425- [ Vitest] [ vitest ]
411- - [ Cypress] [ cypress ]
412426- [ ESLint] [ eslint ]
413427- [ GitHub Actions] [ ghactions ]
414428
@@ -425,4 +439,3 @@ This project uses GitHub Actions to perform DevOps automation activities such as
425439[ vitest ] : https://vitest.dev/ ' Vitest Testing Framework '
426440[ ghactions ] : https://docs.github.com/en/actions ' GitHub Actions '
427441[ eslint ] : https://eslint.org/docs/latest/ ' ESLint '
428- [ cypress ] : https://docs.cypress.io/guides/overview/why-cypress ' Cypress Testing Framework '
0 commit comments