A modern web application for ESL teachers to track student conversations and automatically generate personalized worksheets based on natural language processing of conversation transcripts.
-
👤 Student Profile Management
- Comprehensive student information tracking
- Personal and professional background storage
- Learning preferences and goals tracking
-
🎙️ Conversation Analysis
- Automatic information extraction from conversations
- Natural language processing using spaCy
- Intelligent pattern matching for student details
-
🔍 Smart Search & Filtering
- Search through student profiles
- Filter conversations by various criteria
- Easy access to historical data
- FastAPI (Python web framework)
- SQLAlchemy (ORM)
- PostgreSQL (Database)
- spaCy (Natural Language Processing)
- React with TypeScript
- Modern UI components
- Responsive design
- Python 3.8+
- Node.js 16+
- PostgreSQL 12+
- pnpm (for package management)
- Clone the repository:
git clone https://github.com/yourusername/esl-worksheet-generator.git
cd esl-worksheet-generator
- Set up the backend:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
pip install -r requirements.txt
python -m spacy download en_core_web_lg
- Set up the database:
# Create PostgreSQL database
createdb esl_worksheet
- Set up the frontend:
cd ../
pnpm install
- Database configuration (backend/app/db/database.py):
SQLALCHEMY_DATABASE_URL = "postgresql://postgres:postgres@localhost/esl_worksheet"
- Start the backend server:
cd backend
uvicorn app.api.main:app --reload
- Start the frontend development server:
pnpm dev
The application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
POST /students/
- Create a new student profileGET /students/
- List all studentsGET /students/{student_id}
- Get specific student detailsPUT /students/{student_id}
- Update student information
POST /conversations/
- Create a new conversation recordGET /conversations/{student_id}
- Get student's conversation historyPOST /analyze-text/
- Analyze conversation text without saving
.
├── backend/
│ ├── app/
│ │ ├── api/ # API endpoints and routing
│ │ ├── db/ # Database models and configuration
│ │ └── services/ # Business logic and services
│ └── requirements.txt
├── src/
│ ├── components/ # React components
│ └── App.jsx # Main application component
└── README.md
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- spaCy for providing excellent NLP capabilities
- FastAPI for the modern Python web framework
- React team for the frontend framework