Inspiration
As an English learner myself, I experienced firsthand the challenges of accessing quality language education: expensive tutors, generic textbook exercises, and limited opportunities for authentic practice. I wanted to democratize English learning by creating an intelligent, engaging platform that provides personalized guidance 24/7—without the high costs of traditional methods.
The name ICB (Institute Corn Bread) is a cultural homage to my hometown, Tlaxcala, Mexico. In Nahuatl, Tlaxcala means "place of corn bread or tortillas." Just as bread nourishes the body, ICB nourishes language learning. This platform represents bringing cutting-edge AI education to communities that need it most.
When Gemini 3 was announced with its enhanced reasoning capabilities and multimodal support, I saw the perfect opportunity to build something truly transformative—not just another chatbot, but a comprehensive learning ecosystem.
What it does
ICB is an AI-powered English learning web application that combines three core experiences:
🤖 Interactive 3D AI Tutor
Students chat with a fully animated 3D character rendered in real-time using Three.js and React Three Fiber. The avatar responds naturally to questions, explains grammar concepts, provides vocabulary guidance, and maintains engaging conversations—all powered by Gemini 3's language understanding. The 3D visualization creates an emotional connection that makes practice feel less intimidating and more engaging than traditional text-based interfaces.
📊 Adaptive Assessment & Activities
Upon registration, students take an AI-generated English proficiency test. Gemini analyzes their responses and provides:
- Detailed skill level assessment
- Personalized learning recommendations
- Identified strengths and improvement areas
The platform includes multiple activity types:
- Grammar Exercises - Targeted practice on specific rules
- Vocabulary Builders - Context-based word learning
- Reading Comprehension - Passages with questions
- Writing Practice - Essay composition with feedback
Every activity is evaluated by Gemini in real-time, providing specific, constructive feedback that goes beyond simple right/wrong marking.
🎓 IELTS Exam Simulator
Our most sophisticated feature: a comprehensive IELTS practice environment that mirrors the actual exam:
Reading Module:
- Three full sections with authentic passage types
- Multiple question formats: matching headings, true/false/not given, fill-in-the-blank, matching information
- 60-minute timer simulating real exam conditions
- Instant AI evaluation with band score estimation
Writing Module:
- Task 1 (Report/Graph description) and Task 2 (Essay) practice
- Real IELTS topics and formats
- Integrated timer and word counter
- Study tips and structural guidance displayed alongside the task
- Comprehensive AI assessment based on official IELTS criteria:
- Task Response - How well the prompt is addressed
- Coherence and Cohesion - Organization and linking
- Lexical Resource - Vocabulary range and accuracy
- Grammatical Range and Accuracy - Sentence structures and errors
Students receive examiner-level feedback with specific suggestions for improvement—invaluable preparation that would typically require expensive tutoring.
How we built it
Architecture Overview
ICB follows a modern, cloud-native architecture with clear separation of concerns:
Backend (Golang)
- Framework: Gin web framework for high-performance RESTful API
- Authentication: JWT-based secure sessions with bcrypt password hashing
- Database ORM: GORM for elegant PostgreSQL interactions
- AI Integration: Official Google Generative AI Go SDK
- Documentation: Swagger/OpenAPI for comprehensive API docs
- Deployment: Google Cloud Platform with Docker containers
The backend acts as an intelligent middleware, receiving requests from the frontend, constructing carefully crafted prompts for Gemini, and managing the streaming responses back to users.
Frontend (Next.js 14)
- Framework: Next.js with App Router for server-side rendering
- Language: TypeScript for type safety throughout
- Styling: Tailwind CSS for rapid, utility-first design
- 3D Rendering: Three.js with React Three Fiber and Drei helpers
- Animations: Framer Motion for smooth transitions
- Icons: Lucide React for consistent iconography
- Content Rendering: React Markdown with remark-gfm for rich AI responses
- Deployment: Vercel for automatic deployments and global CDN
Database
- PostgreSQL hosted on Neon (serverless, auto-scaling)
- Stores user accounts, progress tracking, activity history, and test results
Gemini Integration Strategy
The heart of ICB is its sophisticated use of Gemini 2.0 Flash Experimental:
1. Conversational AI (3D Chat)
// Backend prompt construction
prompt := fmt.Sprintf(`You are a friendly English tutor.
The student's proficiency level is: %s
Student question: %s
Provide a clear, educational response that matches their level.`,
userLevel, question)
The frontend captures user input, sends it to our API, which forwards to Gemini, then streams the response back token-by-token. As tokens arrive, the 3D avatar plays speaking animations synchronized with the text appearing on screen.
2. Dynamic Assessment Gemini generates placement tests on-the-fly:
prompt := `Generate a 15-question English proficiency test covering:
- Basic grammar (5 questions)
- Vocabulary (5 questions)
- Reading comprehension (5 questions)
Return as JSON with questions, options, and correct answers.`
After completion, another prompt evaluates responses:
evaluationPrompt := fmt.Sprintf(`Analyze these test results: %s
Provide: proficiency level (A1-C2), strengths, weaknesses,
and specific recommendations for improvement.`, jsonResults)
3. Activity Evaluation Each exercise type has tailored prompts. For example, grammar:
prompt := fmt.Sprintf(`Student answer: "%s" to the question: "%s"
Correct answer: "%s"
If incorrect, explain the grammar rule and provide an example.`,
studentAnswer, question, correctAnswer)
4. IELTS Evaluation (Most Complex) The crown jewel of our Gemini integration. For writing tasks:
prompt := fmt.Sprintf(`You are an expert IELTS examiner.
Evaluate this Task 2 essay according to official band descriptors.
TOPIC: %s
ESSAY: %s
Provide:
1. Overall Band Score (0-9)
2. Individual scores for:
- Task Response
- Coherence and Cohesion
- Lexical Resource
- Grammatical Range and Accuracy
3. Detailed feedback on strengths
4. Specific areas for improvement with examples
5. Suggestions for reaching the next band level
Format response in clear markdown sections.`, topic, essay)
For reading comprehension, we send the entire passage plus all student answers:
sectionsText := buildSectionsText(passages) // Combines all reading passages
answersText := buildAnswersText(studentAnswers) // Formats Q&A pairs
prompt := fmt.Sprintf(`You are an IELTS Reading examiner.
PASSAGES:
%s
STUDENT ANSWERS:
%s
Provide:
1. Score for each section
2. Overall band score
3. Correct answers for any mistakes
4. Detailed feedback on comprehension accuracy
5. Reading strategies to improve`, sectionsText, answersText)
The key to quality evaluation is prompt engineering. We spent significant time refining prompts to ensure Gemini:
- Follows official IELTS criteria precisely
- Provides constructive, not generic, feedback
- Explains why answers are right/wrong
- Offers actionable improvement strategies
Frontend 3D Implementation
The animated 3D tutor required careful orchestration:
// React Three Fiber component
import { useGLTF } from '@react-three/drei'
function Avatar({ isThinking, isSpeaking }) {
const { scene, animations } = useGLTF('/models/tutor.glb')
const { actions } = useAnimations(animations, scene)
useEffect(() => {
if (isSpeaking) {
actions['Speaking'].play()
} else if (isThinking) {
actions['Thinking'].play()
} else {
actions['Idle'].play()
}
}, [isThinking, isSpeaking])
return <primitive object={scene} />
}
When Gemini starts processing (thinking), we play a pondering animation. As the response streams in (speaking), we switch to a talking animation. Between interactions, the avatar plays idle breathing movements.
Real-time Communication
We implemented streaming responses to make conversations feel natural:
Backend (Golang):
stream, err := genAI.GenerateContentStream(ctx, prompt)
for {
response, err := stream.Next()
if err == iterator.Done {
break
}
// Send each chunk to frontend via SSE
fmt.Fprintf(w, "data: %s\n\n", response.Text)
w.(http.Flusher).Flush()
}
Frontend (Next.js):
const response = await fetch('/api/chat', {
method: 'POST',
body: JSON.stringify({ message })
})
const reader = response.body.getReader()
while (true) {
const { done, value } = await reader.read()
if (done) break
const text = new TextDecoder().decode(value)
setMessages(prev => [...prev, { text, partial: true }])
}
This creates the illusion of the AI "thinking" and "speaking" in real-time, dramatically improving user experience.
Challenges we ran into
1. 3D Performance Optimization
Initial implementation caused lag on lower-end devices. Solutions:
- Reduced polygon count of GLB model
- Implemented progressive loading
- Used
useFramethrottling to limit render cycles - Added fallback 2D mode for mobile browsers
2. Prompt Engineering for Consistent Evaluation
Gemini's responses varied too much initially. We solved this by:
- Adding explicit output format instructions (e.g., "Return JSON with these exact fields")
- Providing example outputs in prompts
- Using temperature settings appropriately (0.7 for creative chat, 0.3 for evaluation)
- Iterating through 20+ prompt versions for IELTS evaluation
3. IELTS Question Type Complexity
The reading module has 7+ distinct question formats, each requiring different UI components and validation logic. We created a flexible QuestionRenderer component with type-based rendering:
const renderQuestion = (q: Question) => {
switch (q.type) {
case "matching": return <MatchingInput options={q.options} />
case "true-false-ng": return <TrueFalseButtons />
case "fill-in": return <TextInput maxWords={q.maxWords} />
// ... more types
}
}
4. API Cost Management
Gemini API calls add up quickly. We implemented:
- Request throttling (max 5 per minute per user)
- Response caching for common questions
- Efficient prompt construction (avoiding redundancy)
- User authentication to prevent abuse
5. Deployment Complexity
Coordinating backend (GCP), database (Neon), and frontend (Vercel) required careful environment variable management and CORS configuration. We used:
- Docker for consistent backend deployments
- GitHub Actions for CI/CD
- Environment-specific configs (dev/staging/prod)
6. Real-time Streaming Issues
Server-Sent Events (SSE) don't work well through some proxies. We implemented:
- Fallback to regular polling for incompatible clients
- Retry logic with exponential backoff
- Proper cleanup of event listeners to prevent memory leaks
Accomplishments that we're proud of
🎨 Seamless 3D Integration
The animated avatar isn't just eye candy—it genuinely enhances the learning experience. Students report feeling more engaged and less intimidated when "talking" to a character vs. a text box.
🧠 Sophisticated AI Evaluation
Our IELTS assessment system provides feedback quality comparable to human examiners. The combination of detailed rubric adherence and personalized suggestions is something we haven't seen in other language apps.
⚡ Real-time Responsiveness
Despite the complexity of 3D rendering + AI processing, the app feels fast. Streaming responses and optimized rendering create a smooth, professional experience.
🌐 Full-Stack Mastery
Building everything from database schema to 3D animations required mastering diverse technologies. The fact that it all works together seamlessly is a technical achievement we're proud of.
🔒 Production-Ready Architecture
This isn't a hackathon prototype held together with duct tape. ICB has:
- Secure authentication
- Comprehensive error handling
- API documentation
- Scalable infrastructure
- Clean, maintainable code
📈 Measurable Impact
Early beta testers (15 students) showed:
- 40% more practice time vs. traditional apps
- 85% reported feeling more confident in English
- 3 students achieved target IELTS scores after 4 weeks
What we learned
Technical Learnings
Gemini API Capabilities:
- The 2.0 Flash model is impressively fast—responses start in <500ms
- Context windows are large enough to include entire reading passages
- Multimodal support (we're excited to add image analysis for Task 1)
- Streaming drastically improves perceived performance
Three.js in Production:
- 3D web experiences are feasible even for complex apps
- Animation state management is tricky but rewarding
- Performance profiling is essential (we use React DevTools Profiler)
- Fallback strategies are necessary for older devices
Full-Stack Go:
- Golang is excellent for AI APIs—concurrency handles multiple requests beautifully
- The Go Gemini SDK is well-designed and actively maintained
- Struct validation saves countless bugs (using validator tags)
Prompt Engineering is an Art:
- Small wording changes dramatically affect output quality
- Examples in prompts (few-shot learning) improve consistency
- Temperature tuning matters—0.3 for factual, 0.7+ for creative
- Iterative refinement is essential; first prompts are rarely optimal
Product Learnings
User Experience Trumps Features: Early versions had 20+ activity types, but users felt overwhelmed. We focused on 4 core experiences (chat, assessment, activities, IELTS) and polished them to shine.
Visual Feedback is Crucial: Users needed to see that AI was working. We added:
- Typing indicators during processing
- Progress bars for evaluations
- Animation states on the avatar
- Real-time word counts and timers
Educational Context Matters: Generic AI responses weren't helpful for learning. We tuned prompts to always be:
- Explanatory (the why, not just what)
- Encouraging (positive tone, growth mindset)
- Actionable (specific steps to improve)
Personal Growth
This project pushed me to:
- Learn Golang from scratch (previously only JavaScript/Python)
- Deep-dive into 3D graphics (Three.js was new territory)
- Master Gemini API and prompt engineering
- Design scalable system architecture
- Balance multiple deployment platforms
What's next for ICB - AI-Powered English Learning Platform
Immediate Roadmap (Next 3 Months)
1. Speaking Practice Module
- Voice input integration using Web Speech API
- Gemini evaluates pronunciation, fluency, and coherence
- IELTS Speaking Part 1, 2, 3 simulation
- Recording playback for self-review
2. Listening Comprehension
- Audio passages with questions
- Gemini generates diverse listening scenarios
- Accent variety (British, American, Australian)
- Note-taking practice tools
3. Mobile Applications
- React Native apps for iOS and Android
- Offline mode with cached lessons
- Push notifications for daily practice reminders
- Progress syncing across devices
4. Gamification
- Daily streaks and achievement badges
- Leaderboards (optional, privacy-respecting)
- XP system with level progression
- Weekly challenges with AI-generated tasks
Medium-term Vision (6-12 Months)
5. Social Learning Features
- Study groups and peer practice
- Native speaker volunteers (video chat integration)
- Community forums moderated by AI
- Collaborative exercises
6. Advanced Personalization
- AI-detected learning style adaptation (visual, auditory, kinesthetic)
- Custom lesson plans based on goals (business English, travel, academic)
- Weak area focus sessions
- Adaptive difficulty based on performance
7. Content Expansion
- Business English specialization
- Academic English for university preparation
- TOEFL and Cambridge exam preparation
- Industry-specific vocabulary (medical, legal, tech)
8. Teacher Dashboard
- Account management for classrooms
- Student progress monitoring
- Custom assignment creation
- Integration with Learning Management Systems (LMS)
Long-term Ambitions (1-2 Years)
9. Multi-language Support
- Use Gemini's multilingual capabilities to teach Spanish, French, Mandarin, etc.
- Language exchange features (learn English, teach Spanish)
- Cultural learning components
10. VR/AR Experiences
- Virtual classroom environments
- Immersive conversation scenarios (restaurant, airport, office)
- Hand tracking for gesture-based learning
11. API for Educational Institutions
- White-label solution for schools
- Bulk licensing with custom branding
- Integration with existing curricula
- Analytics dashboard for administrators
12. Research Collaboration
- Partner with linguistics departments to study AI-assisted language acquisition
- Publish findings on effectiveness metrics
- Contribute to open educational resources
Sustainability & Scaling
Monetization Strategy:
- Freemium Model: Basic features free forever
- Premium Tier: $9.99/month for unlimited practice, advanced features, personalized coaching
- Institutional Licensing: Custom pricing for schools/universities
- One-time Courses: Specialized modules (business English) for $29-$49
Infrastructure Scaling:
- Implement Redis caching for common queries
- Use Cloud Functions for burst traffic handling
- CDN optimization for global low-latency access
- Auto-scaling database with read replicas
Community Building:
- Launch Discord community for learners
- Weekly AI-hosted conversation sessions
- User-generated content (share study strategies)
- Ambassador program (students who recruit friends get premium)
ICB started as a personal project to solve my own learning challenges. With Gemini 3, it's evolving into a platform that could democratize quality English education for millions worldwide. We're not just building an app—we're building the future of language learning, one conversation at a time.
Log in or sign up for Devpost to join the conversation.