A comprehensive AI-powered learning assistant application with document summarization, flashcard generation, and study mode features.
- Document Upload & Processing: Upload PDF and DOCX files for AI-powered analysis
- AI Summarization: Generate comprehensive summaries with key points
- Flashcard Generation: Automatically create flashcards from documents
- Study Mode: Interactive study sessions with spaced repetition
- User Management: Registration, authentication, and profile management
- Analytics Dashboard: Monitor usage metrics from the admin interface
ai_project/
├── backend/ # Django REST API
│ ├── api/ # Main application
│ ├── config/ # Django settings
│ └── requirements.txt
├── front_end/ # React + TypeScript frontend
│ ├── src/
│ └── package.json
└── README.md
- Django 5.0+: Web framework
- Django REST Framework: RESTful API
- PostgreSQL: Database
- Redis: Caching and session management
- OpenAI API: AI-powered content generation
- React 18+: UI framework
- TypeScript: Type safety
- Vite: Build tool
- Tailwind CSS: Styling
- Motion: Animations
- Python 3.11+
- Node.js 18+
- PostgreSQL 14+
- Redis 6+
- Docker & Docker Compose (optional)
git clone <your-repo-url>
cd ai_projectcd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your configuration
# Set up database (using Docker Compose)
docker-compose up -d
# Run migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Run server
python manage.py runservercd front_end
# Install dependencies
npm install
# Set up environment variables
# Create .env file with:
# VITE_API_BASE_URL=http://localhost:8000/api
# Run development server
npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api
- Django Admin: http://localhost:8000/admin
# Django
SECRET_KEY=your-secret-key
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Database
DB_NAME=ai_learning_assistant
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5434
# Redis
REDIS_URL=redis://localhost:6379/0
# OpenAI
OPENAI_API_KEY=your-openai-api-keyVITE_API_BASE_URL=http://localhost:8000/apicd backend
docker-compose up -dThis will start PostgreSQL and Redis containers.
- Install PostgreSQL and Redis
- Create a database named
ai_learning_assistant - Update database credentials in
backend/.env - Run migrations:
python manage.py migrate
The application uses JWT (JSON Web Tokens) for authentication:
- Access tokens expire in 15 minutes
- Refresh tokens expire in 7 days
- Tokens are stored in localStorage
- Create a superuser:
python manage.py createsuperuser - Login with superuser credentials
- Admin menu will appear in the sidebar
- Access admin dashboard at
/adminroute
POST /api/auth/register/- User registrationPOST /api/auth/login/- User loginPOST /api/auth/refresh/- Refresh access tokenGET /api/auth/profile/- Get user profilePATCH /api/auth/profile/- Update user profile
GET /api/documents/- List documentsPOST /api/documents/- Upload documentGET /api/documents/{id}/- Get documentDELETE /api/documents/{id}/- Delete document
GET /api/summaries/- List summariesPOST /api/documents/{id}/generate_summary/- Generate summaryGET /api/summaries/{id}/- Get summary
GET /api/flashcards/- List flashcardsPOST /api/flashcards/- Create flashcardPOST /api/documents/{id}/generate_flashcards/- Generate flashcardsPOST /api/flashcards/{id}/review/- Review flashcard
GET /api/admin/dashboard/stats/- Dashboard statisticsGET /api/admin/users/- List usersGET /api/admin/users/{id}/- Get user detailsPATCH /api/admin/users/{id}/- Update user details (e.g., grant admin access)GET /api/admin/content/stats/- Content statistics
cd backend
python manage.py testcd front_end
npm testNote: Make sure to never commit sensitive information like API keys, secrets, or .env files to the repository.