ChronoPlanner is a full-stack calendar scheduling platform that allows users to create, view, and manage events with built-in conflict detection and recurring event support. The application provides multiple calendar views and communicates with a RESTful backend API for event management.
- 📅 Calendar Views — Switch between day, week, and month views with FullCalendar.
- ➕ Event Creation — Add new events through an intuitive modal form.
⚠️ Conflict Detection — Prevent scheduling conflicts with real-time overlap checks.- 🔁 Recurring Events — Define recurring schedules with flexible rules.
- 🔄 Live Updates — Calendar refreshes automatically after event creation or modification.
- Flask — REST API
- Python 3.12
- SQLite/PostgreSQL (configurable)
- Node.js v16+
- npm or yarn
- Python 3.12+
- pip (Python package manager)
git clone <your-repo-url>
python3.12 -m venv venv
-
On macOS/Linux:
source venv/bin/activate
-
On Windows:
venv\Scripts\activate
pip install -r requirements.txt
python app.py
Server runs at: http://127.0.0.1:5000
cd frontend
npm install
npm run dev
React app runs at: http://localhost:3000
Base URL:
http://localhost:5000/api
Example request to fetch events:
GET /api/events
- Start Flask backend (
python app.py
). - Start React frontend (
npm run dev
). - Open http://localhost:3000.
- Create events, test conflict prevention, and add recurring events.
For deployment, ensure:
-
Backend runs in a production server (e.g., Gunicorn, uWSGI) behind Nginx/Apache.
-
Frontend built with:
npm run build
-
Environment variables set for database and API endpoints.
- Input validation on both client and server.
- Environment variables for sensitive data (database URL, API keys).
- HTTPS for all client ↔ server communication.
- ⏰ Event reminders & notifications
- 🧑🤝🧑 Multi-user collaboration
- 📱 Mobile-friendly offline mode
- 🔄 Integration with external calendars (Google, Outlook)
- ✅ Comprehensive unit & e2e testing