Ethiopian Calendar Meeting Scheduler
- Install dependencies:
npm install- Create
.env.localfile:
MONGODB_URI=your_mongodb_connection_string
MONGODB_DB=calendarr
- Create database indexes for optimal performance:
node scripts/create-indexes.jsThis will create indexes on:
idfield (unique) - for fast meeting lookupscreatedAtfield - for sorting meetingsavailability.userIdfield - for fast availability queries
- Run development server:
npm run dev# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
# Run tests in CI mode
npm run test:ci-
Unit Tests (
__tests__/unit/): Test individual utilities and functionsethiopian-calendar.test.ts- Calendar conversion utilitiestranslations.test.ts- Translation systeminMemoryMeetings.test.ts- In-memory meeting storage
-
API Tests (
__tests__/api/): Test API route handlersmeetings.test.ts- Meeting CRUD operations
-
Component Tests (
__tests__/components/): Test React componentsThemeToggle.test.tsx- Theme switchingLanguageToggle.test.tsx- Language switchingEthiopianDatePicker.test.tsx- Date picker component
-
Integration Tests (
__tests__/integration/): Test complete workflowsmeeting-flow.test.ts- Full meeting lifecycle
-
E2E Tests (
__tests__/e2e/): End-to-end user journeysmeeting-creation-flow.test.ts- Complete user flows
The project aims for 70% code coverage across:
- Branches
- Functions
- Lines
- Statements
- MongoDB connection pooling enabled
- Database indexes for fast queries
- Optimized API routes with reduced round trips
- Efficient query projections (excludes unnecessary fields)
- ✅ Ethiopian calendar support with Ge'ez numerals
- ✅ Dark mode
- ✅ Mobile responsive
- ✅ Custom meeting durations
- ✅ Calendar system selector (Ethiopian/Gregorian/Both)
- ✅ Real-time availability tracking
- ✅ Amharic language support
- ✅ Comprehensive test suite