A full-stack application designed to help users practice Italian through conversation with an AI tutor. The application allows users to practice specific grammatical concepts (e.g., Passato Prossimo) or real-world topics (e.g., Ordering Coffee) based on their skill level.
- User Authentication: Secure signup and login with JWT.
- Customizable Practice: Select your proficiency level (A1-C2), mode (Grammar vs. Topic), and specific focus area.
- AI Tutor: Powered by Google's Gemini API, providing context-aware responses and gentle corrections.
- Conversation History: Chat sessions are saved to MongoDB for review.
- Framework: Nest.js (TypeScript)
- Database: MongoDB (via Mongoose)
- AI Model: Google Gemini 1.5 Flash (via @google/genai SDK)
- Auth: Passport.js + JWT
- Framework: React + Vite
- Styling: Tailwind CSS
- State: React Context API + Axios
- Navigate to the server directory:
cd server
npm install
- Create a .env file in server/ from the .env.example file
- Run the server:
npm run start:dev
Server runs on http://localhost:3000.
- POST /auth/signup - Create account
- POST /auth/login - Get JWT Access Token
- POST /chat/start-session - Initialize a new session
- POST /chat/send-message - Send message to AI
- GET /chat/sessions - Get user history