LissanAI is an AI-powered application designed to help Ethiopian users master professional English communication. It acts as a personal tutor for practicing speaking, perfecting writing, and understanding complex grammar in a supportive, contextual, and non-judgmental way.
- ๐ฃ๏ธ Mock Interview Practice: Simulate interviews and get instant AI feedback on grammar, clarity, and pronunciation.
- ๐ฌ Free Speaking Mode: Practice conversational English on any topic with a responsive AI partner.
- โ๏ธ AI Writing Assistant: Draft professional emails from Amharic prompts or proofread existing English text.
- ๐ช๐น Amharic Support: Get key grammatical explanations in Amharic to ensure full understanding.
- ๐ Learning Paths: Structured courses with lessons, quizzes, and progress tracking.
- ๐ฅ Streak Tracking: Gamified learning with daily streaks and activity calendars.
- ๐ฏ Pronunciation Assessment: AI-powered pronunciation feedback and improvement suggestions.
- Go 1.24+ (for backend)
- Node.js 18+ (for web)
- Flutter 3.0+ (for mobile)
- MongoDB 7+ (local or Atlas)
git clone https://github.com/A2SV/g6-lissanai.git
cd g6-lissanaicd backend
# Create .env file (see backend/README.md for details)
go mod download
go run cmd/api/main.go- API:
http://localhost:8080 - Swagger:
http://localhost:8080/swagger/index.html - Health:
http://localhost:8080/health
cd web
npm install
npm run dev- Web App:
http://localhost:3000
cd mobile
flutter pub get
flutter runThis repository is a monorepo containing the core components of LissanAI.
g6-lissanai/
โโโ backend/ # Go API server with MongoDB
โ โโโ cmd/api/ # Application entrypoint
โ โโโ internal/ # Core business logic
โ โ โโโ handler/ # HTTP handlers
โ โ โโโ usecase/ # Business logic
โ โ โโโ service/ # Domain services
โ โ โโโ repository/# Data access layer
โ โ โโโ client/ # External API clients
โ โโโ tests/ # Comprehensive test suite
โ โโโ postman/ # API collection
โ โโโ docs/ # Swagger documentation
โโโ web/ # Next.js web application
โ โโโ src/app/ # App router pages
โ โโโ src/components/# React components
โ โโโ src/lib/ # Utilities and configurations
โโโ mobile/ # Flutter mobile app
โ โโโ lib/features/ # Feature-based architecture
โ โโโ lib/core/ # Core utilities
โ โโโ android/ios/ # Platform-specific code
โโโ README.md
| Component | Technology | Purpose |
|---|---|---|
| Backend | Go (Gin), MongoDB, JWT | API server, authentication, data persistence |
| Web | Next.js, TypeScript, Tailwind CSS | Web interface, responsive design |
| Mobile | Flutter, Dart | Cross-platform mobile app |
| AI Services | Google Gemini, Groq, Whisper, Unreal Speech | Grammar checking, speech-to-text, text-to-speech |
| Authentication | JWT, Google OAuth | Secure user authentication |
| Testing | Go testing, testify | Unit, integration, and E2E tests |
- Testing:
go test ./...(unit + integration + e2e) - Coverage:
go test -cover ./... - API Docs: Swagger UI at
/swagger/index.html - Postman: Import
backend/postman/LissanAI_Backend.postman_collection.json
- Dev Server:
npm run dev - Build:
npm run build - Lint:
npm run lint
- Run:
flutter run - Build:
flutter build apk(Android) /flutter build ios(iOS) - Test:
flutter test
- Backend API: Backend README | Swagger UI
- Web App: Web README
- Mobile App: Mobile README
- Postman Collection: Backend API Collection
- Production: Deployed on Render with MongoDB Atlas
- Health Check:
https://lissan-ai-backend-dev.onrender.com/health - API Docs:
https://lissan-ai-backend-dev.onrender.com/swagger/index.html
- Production: Deployed on Vercel/Render
- URL:
https://lissanai.onrender.com
- Android: Google Play Store (planned)
- iOS: App Store (planned)
The backend includes comprehensive testing:
- Unit Tests: Service and usecase layer testing
- Integration Tests: Handler and database integration
- E2E Tests: Complete user flow testing
- Mocking: External service mocking for isolated testing
Run tests:
cd backend
go test ./... # All tests
go test ./tests/unit/... # Unit tests only
INTEGRATION_TESTS=true go test ./tests/integration/... # Integration tests
E2E_TESTS=true go test ./tests/e2e/... # E2E testsContributions are welcome! Please fork the repository, create a new branch for your feature, and submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.