From 0bef883568bddc5f929b8b07121f554d52c50e0a Mon Sep 17 00:00:00 2001 From: artemnto1 Date: Tue, 13 Jan 2026 13:41:44 +0100 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D1=82=D1=8C=20QU?= =?UTF-8?q?ICK=5FSTART.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QUICK_START.md | 235 ------------------------------------------------- 1 file changed, 235 deletions(-) delete mode 100644 QUICK_START.md diff --git a/QUICK_START.md b/QUICK_START.md deleted file mode 100644 index bb7358c..0000000 --- a/QUICK_START.md +++ /dev/null @@ -1,235 +0,0 @@ -# Quick Start Guide - -## Installation (5 minutes) - -```bash -# 1. Install dependencies with uv -uv pip install -r requirements.txt - -# 2. Start Docker services (PostgreSQL + MinIO) -docker-compose up -d - -# 3. Initialize database -python init_db.py -# Choose option 1: Create tables - -# 4. Verify setup -docker exec rag_ai_postgres psql -U postgres -d rag_ai_assistant -c "\dt" -# Should show: users, profiles tables -``` - -## Running the Application - -### Option 1: All-in-One (Recommended for Development) -```bash -python bot.py -``` -This starts both the FastAPI server and Telegram bot together. - -### Option 2: Separate Processes (For Testing) -```bash -# Terminal 1: API Server -uvicorn app:app --reload --host localhost --port 8000 - -# Terminal 2: Telegram Bot -.venv/bin/python -c "from bot import start_bot; import asyncio; asyncio.run(start_bot())" -``` - -## Testing the API - -### 1. Test Login Endpoint -```bash -curl http://localhost:8000/login -``` -**Expected response:** -```json -{ - "message": "Нажмите на кнопку для регистрации", - "url": "https://t.me/ITMOshkaBot?start={token}", - "check_status_url": "/check-auth/{token}" -} -``` - -### 2. Check Database Tokens -```bash -curl http://localhost:8000/database/tokens -``` -**Expected response:** -```json -[ - { - "token": "uuid-here", - "status": "pending", - "username": null - } -] -``` - -### 3. Test Profile Creation -```bash -curl -X POST http://localhost:8000/profile \ - -F "name=John Doe" \ - -F "email=john@example.com" \ - -F "position=Python Developer" \ - -F "skills=Python, FastAPI, PostgreSQL" \ - -F "cv=@/path/to/resume.pdf" -``` - -### 4. Get Profile -```bash -curl http://localhost:8000/profile/john@example.com -``` - -### 5. List Vacancies -```bash -curl http://localhost:8000/vacancies -``` - -## Database Quick Commands - -### View All Users -```bash -docker exec rag_ai_postgres psql -U postgres -d rag_ai_assistant -c "SELECT * FROM users;" -``` - -### View All Profiles -```bash -docker exec rag_ai_postgres psql -U postgres -d rag_ai_assistant -c "SELECT email, name, position FROM profiles;" -``` - -### Delete All Users (Reset) -```bash -docker exec rag_ai_postgres psql -U postgres -d rag_ai_assistant -c "DELETE FROM users;" -``` - -### Count Records -```bash -docker exec rag_ai_postgres psql -U postgres -d rag_ai_assistant -c "SELECT COUNT(*) FROM users;" -docker exec rag_ai_postgres psql -U postgres -d rag_ai_assistant -c "SELECT COUNT(*) FROM profiles;" -``` - -## Common Tasks - -### Reset Database -```bash -python init_db.py -# Choose option 2: Drop and recreate tables -``` - -### Check PostgreSQL Logs -```bash -docker logs rag_ai_postgres -f -``` - -### Check MinIO Status -```bash -docker ps | grep minio -# Or visit: http://localhost:9001 -# Login: minioadmin / minioadmin -``` - -### Backup Database -```bash -docker exec rag_ai_postgres pg_dump -U postgres rag_ai_assistant > backup_$(date +%Y%m%d).sql -``` - -### Restore Database -```bash -docker exec -i rag_ai_postgres psql -U postgres rag_ai_assistant < backup_20240109.sql -``` - -## Environment Variables (.env) - -Make sure these are set correctly: - -```env -# Bot -BOT_API_KEY=your_telegram_bot_token_here - -# Database -POSTGRES_USER=postgres -POSTGRES_PASSWORD=postgres -POSTGRES_DB=rag_ai_assistant -POSTGRES_HOST=localhost -POSTGRES_PORT=5432 - -# MinIO -MINIO_ENDPOINT=localhost:9000 -MINIO_ACCESS_KEY=minioadmin -MINIO_SECRET_KEY=minioadmin -MINIO_BUCKET=resumes -``` - -## Troubleshooting - -### "Connection refused" errors -```bash -# Check if PostgreSQL is running -docker ps | grep postgres - -# Restart if needed -docker-compose restart rag_ai_postgres -``` - -### "No module named 'X'" errors -```bash -# Reinstall dependencies -uv pip install -r requirements.txt -``` - -### Database tables don't exist -```bash -# Reinitialize -python init_db.py -``` - -### Bot not responding -```bash -# Check bot token in .env -cat .env | grep BOT_API_KEY - -# Test bot manually -curl https://api.telegram.org/bot{YOUR_TOKEN}/getMe -``` - -## API Documentation - -Once running, visit: -- **Swagger UI:** http://localhost:8000/docs -- **ReDoc:** http://localhost:8000/redoc - -## Project Structure - -``` -├── app.py # FastAPI application -├── bot.py # Telegram bot -├── config.py # Configuration -├── init_db.py # Database setup script -├── requirements.txt # Dependencies -├── .env # Environment variables (create this!) -├── database/ -│ └── database.py # ORM models & DB session -└── tests/ # Your tests -``` - -## Next Steps - -1. ✅ Database is set up -2. ✅ API is working -3. ✅ Bot is connected -4. 📝 Test the authentication flow -5. 📝 Test profile creation -6. 📝 Add your custom business logic - -## Support - -- **Documentation:** See [README.md](README.md) for full details -- **Implementation Details:** See [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) -- **Database Schema:** See diagrams in implementation summary - ---- - -**Status:** ✅ All systems operational -**PostgreSQL:** Port 5432 -**MinIO:** Port 9000 (API) / 9001 (Console) -**FastAPI:** Port 8000