Tidy Tasks is a task management application that helps new users schedule tasks based on their workflow and available time slots. This app uses React with TypeScript for the frontend, a Node.js/Express server for the backend, and PostgreSQL with Drizzle ORM for the database. It integrates with the Google Calendar API and the Gemini API to generate appropriate times for tasks automatically.
- User-friendly interface for managing tasks
- Automatic scheduling based on user workflow and calendar availability
- Integration with Google Calendar API and Gemini API
- Secure user authentication and data management
Make sure you have the following installed on your machine:
- Node.js (v14.x or higher)
- PostgreSQL (v12.x or higher)
- Google Developer Account for Google Calendar API
- Gemini API Access
-
Clone the repository:
git clone https://github.com/ashfaqjani916/task-tide cd tidy-tasks -
Backend Setup:
-
Navigate to the
serverdirectory and install dependencies:cd server npm install -
Create a
.envfile in theserverdirectory and add your environment variables:PORT=5000 DATABASE_URL=your_postgres_database_url GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret GEMINI_API_KEY=your_gemini_api_key
-
Run database migrations (adjust based on Drizzle ORM setup):
npm run migrate
-
Start the backend server:
npm start
-
-
Frontend Setup:
-
Navigate to the
frontenddirectory and install dependencies:cd ../frontend npm install -
Create a
.envfile in thefrontenddirectory and add your environment variables:REACT_APP_GOOGLE_CLIENT_ID=your_google_client_id REACT_APP_API_URL=http://localhost:5000
-
Start the frontend development server:
npm start
-
-
Register/Login:
- Users can register or log in using their Google accounts.
-
Answer Workflow Questions:
- New users will be prompted to answer 9 questions to understand their workflow.
-
Integrate Google Calendar:
- Connect your Google Calendar to fetch available time slots.
-
Task Scheduling:
- Based on the answers and available time slots, Tidy Tasks will automatically schedule tasks using the Gemini API.
We welcome contributions! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature). - Open a Pull Request.
This project is licensed under the MIT License.
For any questions or inquiries, please contact ashfaqjani916@gmail.com.
frontend: React frontend application.server: Node.js/Express backend application.
Make sure to replace placeholders like yourusername, your_postgres_database_url, your_google_client_id, your_google_client_secret, and your_gemini_api_key with your actual configuration details.