FocusIO is a full stack AI assisted productivity and task management web application developed as part of my Master's Software Engineering portfolio project. The application enables users to organise daily tasks, generate AI assisted schedules, and synchronise approved schedules with Google Calendar through a modern and intuitive web interface.
The project follows a modular client server architecture using React for the frontend, Express.js for the backend, MySQL for data persistence, and external APIs for AI generated scheduling and calendar integration.
- Create new tasks
- Edit existing tasks
- Delete tasks
- Mark tasks as completed
- View expandable task details
- Store tasks persistently using MySQL
- Generate AI-assisted daily schedules
- Organise tasks based on user input
- Review generated schedules before exporting
- Export approved schedules to Google Calendar
- Synchronise planned activities with an external calendar
- RESTful API architecture
- Modular frontend components
- Client-server communication using HTTP requests
- Responsive user interface
- Persistent database storage
- React
- Vite
- JavaScript
- CSS
- Node.js
- Express.js
- MySQL
- MySQL Workbench
- OpenAI API
- Google Calendar API
- Postman
- Manual Integration Testing
FocusIO
│
├── frontend
│ ├── src
│ │ ├── components
│ │ ├── pages
│ │ ├── services
│ │ ├── hooks
│ │ └── assets
│ │
│ ├── package.json
│ └── vite.config.js
│
├── backend
│ ├── routes
│ ├── controllers
│ ├── services
│ ├── database
│ ├── server.js
│ ├── package.json
│ └── .env
│
├── README.md
└── package.json
git clone https://github.com/Shaurya-fs/FocusIO.gitcd frontend
npm installcd ../backend
npm installCreate a .env file inside the backend folder.
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=focusio
DB_PORT=3306
OPENAI_API_KEY=your_openai_api_key
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=your_redirect_uriCREATE DATABASE focusio;
USE focusio;
CREATE TABLE tasks (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
due_date DATE,
priority ENUM('Low','Medium','High'),
estimated_duration VARCHAR(50),
completed BOOLEAN DEFAULT FALSE
);npm run devBackend:
http://localhost:5001
npm run devFrontend:
http://localhost:5173
| Method | Endpoint | Description |
|---|---|---|
| GET | /tasks | Retrieve all tasks |
| GET | /tasks/:id | Retrieve a single task |
| POST | /tasks | Create a task |
| PUT | /tasks/:id | Update a task |
| DELETE | /tasks/:id | Delete a task |
| POST | /generateSchedule | Generate an AI schedule |
| POST | /calendar/export | Export schedule to Google Calendar |
The current implementation includes:
- User-friendly dashboard
- Expandable task details
- Task creation and editing
- Task completion tracking
- AI schedule generation
- Google Calendar integration
- Full CRUD functionality
- MySQL database integration
- Responsive interface
Potential future enhancements include:
- User authentication and authorisation
- Multi-user support
- Collaborative task management
- AI personalisation based on user behaviour
- Recurring task automation
- Push notifications and reminders
- Offline functionality
- Docker deployment
- CI/CD pipeline
- Cloud hosting
Current Version: Phase 3 (Final Portfolio Version)
- Full-stack React application
- Express.js REST API
- MySQL database integration
- Complete CRUD operations
- AI-assisted scheduling
- Google Calendar integration
- Modular software architecture
- Responsive frontend
- Frontend-backend integration
Screenshots of the application are available in the project documentation and can also be viewed below.
(Add screenshots here after uploading them to GitHub.)
Shaurya Arora
Master's Student in Computer Science
Software Engineering Portfolio Project
GitHub: https://github.com/Shaurya-fs
This project was developed for academic and portfolio purposes as part of a Master's Software Engineering course.