A comprehensive mobile and web application providing traditional fasting recipes and detailed guidance for Navratri celebrations, built with modern web technologies and native platform capabilities.
Current Status:
- Languages: 4 active (en, hi, mr, bn), 4 disabled (ta, te, ml, kn)
- Core Features: Fasting recipes, Navratri guide, Multi-language support
- Platforms: Web (PWA), Android & iOS (via Capacitor)
- Development: Some AI-generated code needs review & optimization
Technical Notes:
- South Indian language support temporarily disabled (UI optimization needed)
- Enhanced recipe features under evaluation
- i18n audit system in place (scripts/i18n-audit.cjs)
# Required
node >= 16.0.0
npm >= 7.0.0
# For Mobile Development
Android Studio (for Android)
Xcode (for iOS, Mac only)# Clone repository
git clone https://github.com/nadi-stuti/navratri.git
# Install dependencies
cd navratri
npm install
# Start development server
npm run dev
# Build for production
npm run build# Build web assets
npm run build
# Initialize mobile platforms
npx cap add android
npx cap add ios # macOS only
# Sync web code with native projects
npx cap sync
# Open native IDEs
npx cap open android
npx cap open ios # macOS only-
Fasting Recipes
- Traditional fasting-friendly recipes
- Ingredient information
- Preparation instructions
- Dietary compliance guidelines
-
Navratri Guide
- Nine forms of Durga
- Festival significance
- Regional celebrations
- Important dates and timings
- Multi-language Support
- Active: English (en), Hindi (hi), Marathi (mr), Bengali (bn)
- Disabled: Tamil (ta), Telugu (te), Malayalam (ml), Kannada (kn)
- Cross-platform Support
- Progressive Web App
- Native Android app
- Native iOS app
- Accessibility
- ARIA attributes
- Screen reader support
- Keyboard navigation
- Skip links
-
Frontend
- React 19.0.0
- TypeScript
- Vite (Build tool)
- i18next (Internationalization)
-
Mobile
- Capacitor 7.0.1
- Native Android support
- Native iOS support
navratri/
โโโ src/ # Source code
โ โโโ components/ # Reusable UI components
โ โโโ pages/ # Page components
โ โโโ contexts/ # React contexts
โ โโโ hooks/ # Custom React hooks
โ โโโ i18n/ # Internationalization
โ โโโ locales/ # Translation files
โ โโโ utils/ # Utility functions
โ โโโ assets/ # Static assets
โโโ android/ # Android platform code
โโโ ios/ # iOS platform code
โโโ public/ # Public assets
โโโ scripts/ # Build & utility scripts
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run linter# Run translation audit
npm run i18n:audit
# List missing translation keys
node scripts/i18n-missing-keys.cjs
# Fill missing translations with placeholders
node scripts/i18n-fill-missing.cjs- i18n:audit: Checks for hardcoded strings and missing translations
- i18n-missing-keys: Safe, non-destructive analysis of missing translations
- i18n-fill-missing: Adds placeholder translations (use with caution)
-
Active Languages
- English (en) - Default
- Hindi (hi)
- Marathi (mr)
- Bengali (bn)
-
Temporarily Disabled
- Tamil (ta)
- Telugu (te)
- Malayalam (ml)
- Kannada (kn)
- Framework: i18next with React bindings
- Detection: Automatic browser language detection
- Storage: Local storage for preferences
- Organization: Namespaced translation files
common.json: UI elementspages.json: Page contentrecipes.json: Recipe datafestival.json: Festival information
- English as reference language
- Automated audit system
- Missing key detection
- Translation placeholder support
- Core recipe functionality
- Festival information
- Multi-language support
- Mobile platform optimization
Several features were initially created using Vibe code assistance:
-
Content & Information Pages
- About Navratri section
- Fasting guidelines
- Festival information pages
- Additional recipe content
-
Language Support
- Multi-language implementation
- Translation structure
- Language switching functionality
-
Enhanced Features (Under Review)
- Enhanced recipe listing system (
src/components/EnhancedRecipeList.tsx) - Advanced search and filters (
src/pages/recipe/RecipeList.tsx, lines 15-45) - These features are currently commented out pending evaluation
- Enhanced recipe listing system (
The enhanced recipe functionality is implemented across two main locations:
-
EnhancedRecipeList Component (
src/components/EnhancedRecipeList.tsx)- Contains advanced recipe filtering
- Grid/List view toggle
- Category-based organization
- Enhanced sorting capabilities
-
Recipe List Page (
src/pages/recipe/RecipeList.tsx)- Enhanced view toggle implementation
- Integration with enhanced recipe data
- Advanced filtering system (currently commented)
Required Actions:
-
Code Review:
- Evaluate the necessity of enhanced features
- Assess performance impact
- Review code complexity
-
Decision Points:
- Whether to remove enhanced features entirely
- Simplify the implementation
- Integrate selected features into main components
-
Cleanup Steps:
- Remove unnecessary imports from RecipeList.tsx
- Clean up enhanced recipe data models
- Remove or simplify EnhancedRecipeList component
- Update related tests and documentation
-
AI-Generated Code Review
- Unnecessary code cleanup needed
- Formatting standardization required
- Code structure optimization pending
-
Feature Evaluation
EnhancedRecipeList.tsxneeds assessment- Search & filter system requires review
- Consider simpler alternatives
- Performance impact analysis needed
-
UI/UX Issues
- South Indian language UI optimization
- Mobile responsive design improvements
- Component structure refinement
EnhancedRecipeList.tsx(AI-generated)- Recipe search and filters system
- Mobile UI for complex scripts
- Code formatting standards
- Code quality improvements
- Mobile UI optimization
- Re-enable South Indian languages
- Performance optimization
- User accounts and profiles
- Recipe sharing capability
- Community chat implementation
- Social interactions
- Recipe ratings and reviews
- Advanced recipe management
- Personalization features
- Event planning tools
- Community engagement features
- Native implementation via Capacitor
- Material Design guidelines
- Play Store deployment ready
- Android-specific optimizations
- Native implementation via Capacitor
- Human Interface Guidelines
- App Store deployment ready
- iOS-specific optimizations
- TypeScript best practices
- React hooks patterns
- Mobile-first design
- Accessibility compliance
- Use translation keys for all text
- Maintain English as reference
- Regular translation audits
- Proper attribute translations
// Before
<button aria-label="Back to top">Back to top</button>;
// After
const { t } = useTranslation();
<button aria-label={t("common.buttons.backToTop")}>
{t("common.buttons.backToTop")}
</button>;We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch
git checkout -b feature/AmazingFeature
- Commit changes
git commit -m 'Add: AmazingFeature' - Push to branch
git push origin feature/AmazingFeature
- Open a Pull Request
-
Code Style
- Follow existing patterns
- Use TypeScript features
- Maintain accessibility
- Run linter before PR
-
Translations
- Add to English first
- Use descriptive keys
- Run i18n audit
- Test all languages
-
Documentation
- Update README if needed
- Document new features
- Add JSDoc comments
- Include usage examples
src/locales/*/*.json: Translationssrc/components/: UI Componentssrc/pages/: Page Componentssrc/i18n/: i18n Configurationscripts/: Utility Scripts
src/main.tsx: App Bootstrapsrc/Router.tsx: Route Definitionscapacitor.config.ts: Native Configvite.config.ts: Build Config
This project is licensed under the MIT License - see the LICENSE file for details.
- React community
- Capacitor team
- i18next contributors
- Open source community
For detailed documentation on specific components and features, please refer to the README files in their respective directories.