AI FlashCard is a full-stack web application that lets users generate, manage, and study flashcards using OpenAI's GPT models. Users can create flashcard sets manually or generate them from text prompts or uploaded files using AI.
- User Authentication: Sign up and sign in with email and password.
- AI Flashcard Generation: Generate flashcards from a prompt or uploaded text file using OpenAI GPT.
- CRUD Flashcard Sets: Create, read, update, and delete flashcard sets.
- Study Mode: Review flashcards in a study-friendly modal.
- Persistent Storage: All data is stored in a PostgreSQL database.
- Frontend: React (Vite), TypeScript, Tailwind CSS
- Backend: Node.js, Express, OpenAI API, Multer, CORS
- Database: PostgreSQL
- Node.js (v18+ recommended)
- npm
- PostgreSQL database
- OpenAI API key
git clone https://github.com/yourusername/aiflashcard.git
cd aiflashcardcd Backend
npm install
cd ../
cd AIFlashCard
npm installCreate a .env file in the Backend directory:
OPENAI_API_KEY=your-openai-api-key-here
DATABASE_URL=your-postgres-connection-string
Create the required tables in your PostgreSQL database:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL
);
CREATE TABLE decks (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
user_id INTEGER REFERENCES users(id)
);
CREATE TABLE flashcards (
id SERIAL PRIMARY KEY,
question TEXT NOT NULL,
answer TEXT NOT NULL,
deck_id INTEGER REFERENCES decks(id)
);cd Backend
npm startcd ../AIFlashCard
npm run devThe frontend will run on http://localhost:5173 and the backend API on http://localhost:3000.
- Sign up or sign in.
- Create a new flashcard set manually or use the AI generator.
- Edit, delete, or study your flashcard sets.
OPENAI_API_KEY– Your OpenAI API key.DATABASE_URL– Your PostgreSQL connection string.