A sophisticated task management application leveraging natural language processing to streamline task organization and event management.
StudySync is an innovative solution designed to address the challenges of modern task management through intelligent automation and seamless integration. By combining natural language processing with calendar management, StudySync provides a unified platform for organizing academic and professional commitments.
- Anusha Muralidhar – Database Architecture & Implementation
- Nhi Dinh – Backend Architecture, NLP Development, API Integration & Testing
- Grace Lin – Frontend Development & Authentication
- Ruoqi Wang – Calendar Integration & UI/UX
Modern professionals and students face several challenges in task management:
- Distributed deadlines across multiple platforms and systems
- Inefficient tracking of academic and professional commitments
- Lack of centralized scheduling solutions
- Time-consuming manual task management
- Increased stress due to disorganized scheduling
StudySync addresses these challenges through:
- Unified task management platform
- Natural language processing for intuitive task creation
- Automated calendar event generation
- Smart deadline reminders and notifications
- Flexible manual editing capabilities
- Secure user account system for persistent scheduling
- Frontend: React Native with Expo framework
- Backend: Node.js REST API
- Natural Language Processing: Python FastAPI with spaCy
- Database & Authentication: Supabase (PostgreSQL)
- Calendar Integration: FullCalendar.js
team-28-project/
├── backend/
│ ├── api/ # Node.js API server (main backend)
│ │ ├── server.cjs
│ │ └── ... # Other API files
│ ├── nlp/ # Python NLP logic
│ │ ├── nlp.py
│ │ └── ...
│ ├── routers/ # FastAPI routers
│ │ ├── nlp_events.py
│ │ └── ...
│ ├── models/ # Python models
│ ├── services/ # Python services
│ ├── utils/ # Python utilities
│ ├── main.py # FastAPI app entrypoint
│ ├── test_api_client.py # API test client
│ ├── test_simple_nlp.py # NLP test suite
│ ├── package.json # Node.js dependencies for backend
│ ├── package-lock.json
│ └── .env # Backend environment variables (not committed)
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ ├── components/
│ │ ├── api/
│ │ ├── utils/
│ │ └── ...
│ ├── assets/ # Images, fonts, etc.
│ ├── App.js # Expo entrypoint
│ ├── app.json # Expo config
│ ├── package.json # Frontend dependencies
│ ├── package-lock.json
│ └── .env # Frontend environment variables (not committed)
├── app/ # Additional application code
├── venv/ # Python virtual environment
├── .expo/ # Expo configuration
├── README.md
├── requirements.txt # Root Python dependencies
├── .gitignore
├── input.json # Test input data
└── output.json # Test output data
- Node.js (v14 or higher)
- npm (v6 or higher)
- Python 3.8 or higher
- pip package manager
- Expo CLI (
npm install -g expo-cli
)
git clone [repository-url]
cd team-28-project
# Backend Dependencies
cd backend
npm install
cd ../frontend
npm install
cd ../backend
# Python Dependencies
pip install -r requirements.txt
# Alternative manual installation:
pip install fastapi uvicorn spacy dateparser
python -m spacy download en_core_web_sm
Create a .env
file in the backend
directory:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
JWT_SECRET=your_jwt_secret
The application requires three concurrent server instances:
cd backend
uvicorn main:app --reload --port 8080
- Service endpoint: http://localhost:8080
cd backend/api
node server.cjs
- Service endpoint: http://localhost:3000
cd frontend
npm start
- Development options:
- iOS Simulator: Press
i
- Android Emulator: Press
a
- Web Browser: Press
w
- iOS Simulator: Press
The system can be tested using the chat interface:
- Enter a natural language task (e.g., "meeting with Tom at 2pm Sunday")
- The frontend will process the request through the Node.js backend
- The FastAPI NLP service will extract and return task details
-
API 500 Error
- Verify both Node.js and FastAPI servers are running
- Check server logs for detailed error messages
-
Python Import Errors
- Confirm correct working directory
- Verify all dependencies are installed
- Check Python environment activation
-
CORS Issues
- Ensure CORS is enabled in both backend servers
- Verify correct port configurations
-
Port Conflicts To terminate processes on specific ports:
lsof -ti:3000,8080,8081,5432 | xargs kill -9
The project includes comprehensive test suites:
cd backend
python test_api_client.py
cd backend
python test_simple_nlp.py
This project is licensed under the MIT License - see the LICENSE file for details.