A calendar application with features for creating events, day and week views, drag & drop functionality, and backend integration with MongoDB.
- Frontend: React 19, TypeScript, Vite
- State Management: Zustand
- Drag & Drop: @hello-pangea/dnd
- Forms: Formik + Yup validation
- Date Management: date-fns
- Styling: SCSS Modules
- Testing: Vitest, Testing Library
- Backend: Node.js + Express + MongoDB
# Frontend
npm install
# Backend
cd server
npm install
cd ..
# Frontend only
npm run dev
# Backend only
npm run server
# Frontend + Backend together
npm run dev:full
npm run test # Run tests
npm run test:ui # Launch UI testing mode
npm run test:coverage # View test coverage
npm run typecheck # TypeScript type checking
npm run lint # Lint the code
npm run build # Build for production
npm run preview # Preview the production build
π Features
β
Create, edit, delete calendars
β
Create, edit, delete events
β
Drag & drop events
β
Day and week views
β
Calendar color tagging
β
Share events with other users
β
Import shared events
β
Responsive design
β
Real-time sync with backend
β
Offline-first approach
π§ Architectural Principles
Feature-Sliced Design β modular architecture
Separation of Concerns β clean code structure
Component-Based Architecture β reusable components
TypeScript β static typing for safety
SCSS Modules β scoped styling
Zustand β simple state management
