- Frontend: React, TypeScript
- Backend: Node.js, TypeScript, Express
- Database: NoSQL (MongoDB) or SQL (PostgreSQL)
- AI Integration: OpenAI GPT-3 or other AI API
- VS Code: IDE for developing the project
-
Introduction and Setup
- Introduction to Git and GitHub
- Git Basics: https://git-scm.com/book/en/v2/Getting-Started-Git-Basics (if attempting, go through sections 1, 2, 3, and 6. 6 is optional in lieu of the Github Guide in the next step)
- GitHub Guide: https://guides.github.com/activities/hello-world/
- JavaScript and TypeScript Basics
- JavaScript Basics: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
- TypeScript Handbook: https://www.typescriptlang.org/docs/handbook/intro.html
- Database Introduction
- Introduction to SQL: https://www.w3schools.com/sql/sql_intro.asp
- Introduction to NoSQL: https://www.mongodb.com/nosql-explained
- React Basics
- React Documentation: https://react.dev
- Node.js and Express Basics
- Node.js Guide: https://nodejs.dev/learn
- Express.js Guide: https://expressjs.com/en/starter/installing.html
- Introduction to Git and GitHub
-
Project Specification
- Frontend Requirements:
- Implement a UI using React.
- Create components for displaying, adding, updating, and deleting todo items.
- Use TypeScript for type safety and better maintainability.
- Backend Requirements:
- Set up a Node.js server with Express.
- Create RESTful APIs for CRUD operations on todo items.
- Use TypeScript for the backend logic.
- Database Requirements:
- Choose between MongoDB (NoSQL) or PostgreSQL (SQL) for storing todo items.
- Implement data models and database connection logic.
- AI Integration:
- Use an AI service (e.g., OpenAI GPT-3) to suggest descriptions for new todo items based on the title provided by the user.
- Frontend Requirements:
-
Project Tasks and Milestones
-
Project Setup and Initial Commit
- Set up a GitHub repository.
- Initialize the project with a README.md file outlining the project scope.
- Set up Node.js, TypeScript, Express, React, and the chosen database.
- Create the basic project structure.
-
Frontend Development
- Implement the main UI components (TodoList, TodoItem, AddTodoForm, EditTodoForm).
- Implement form validation and user-friendly error messages.
-
Database Integration
- Design the database schema.
- Implement database models and data access logic.
- Test database operations with sample data.
-
Backend Development
- Set up a NodeJS server and connect to the database.
- Create RESTful APIs for CRUD operations (Create, Read, Update, Delete) for todo items.
- Implement request validation and error handling.
-
Testing
- Write unit tests and integration tests for both frontend and backend.
-
AI Integration
- Set up an account with an AI service like OpenAI.
- Implement a service that sends user input to the AI API and retrieves suggested descriptions for todo items.
- Integrate the AI service with the frontend and backend.
-
Final Review and Extra Credit
- Review the entire project, clean up the codebase, and ensure all features work as expected.
- Document the project setup and usage instructions in the README.md file.
- Set up continuous integration using GitHub Actions or another CI service.
- Deploy the application to a cloud provider (e.g., Heroku, Vercel).
- Optional: Add more advanced features or optimizations (e.g., offline support, advanced filtering and sorting of todo items).
-
- OpenAI API Documentation: https://beta.openai.com/docs/
- Continuous Integration with GitHub Actions: https://docs.github.com/en/actions
# Full Stack Todo Application
## Overview
This project is a full-stack Todo application built with React and TypeScript on the frontend, Node.js and Express on the backend, and MongoDB or PostgreSQL for the database. The application also includes AI integration for suggesting todo descriptions.
## Technologies
- **Frontend**: React, TypeScript
- **Backend**: Node.js, Express, TypeScript
- **Database**: MongoDB/PostgreSQL
- **AI Integration**: OpenAI API
## Getting Started
### Prerequisites
- Node.js
- MongoDB/PostgreSQL
- Git
### Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/todo-app.git
cd todo-app
```
-
Install dependencies:
npm install cd client npm install cd ..
-
Set up environment variables: Create a
.env
file in the root directory with the following variables:DATABASE_URL=your_database_url OPENAI_API_KEY=your_openai_api_key
-
Run the application:
npm run dev
- Add, update, delete, and view todo items
- Web scraping with Playwright for motivational quotes
- AI integration for suggesting todo descriptions
---
This should now be more suitable for pasting into Google Docs. The links are in plain text format, which Google Docs will recognize and format appropriately.