An interactive educational platform for teaching programming in Arabic using AI
- Full Arabic Interface: Content, lessons, and tutorials in Arabic
- Multi-language Support: Python, JavaScript, Java, C++, C#, Go, Rust, PHP
- AI-Powered Content: Dynamic content generation using Google Gemini AI
- Interactive Quizzes: Multiple choice questions after each lesson
- Coding Challenges: Practical exercises every 4 lessons
- Smart Assistant: Q&A system with contextual guidance
- Progress Tracking: Monitor learning progress throughout the curriculum
- Python 3.8+
- Google Gemini API key
- FastAPI
- Uvicorn (for running the server)
# Clone the project
git clone <your-repo-url>
cd arabic-programming-platform
# Create virtual environment (optional)
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
# Install dependencies
pip install fastapi uvicorn langchain-google-genai python-dotenv
# Create environment file
echo "GOOGLE_API_KEY=your_google_gemini_api_key_here" > .env
Getting the API Key:
- Go to Google MakerSuite
- Create a new API key
- Add it to the
.env
file
uvicorn main:app --reload --host 0.0.0.0 --port 8000
Access the application:
- Main interface: http://localhost:8000
- API documentation: http://localhost:8000/docs
- Alternative docs: http://localhost:8000/redoc
POST /select-language
{
"language": "Python"
}
GET /lesson/1
GET /generate-quiz/1
POST /submit-quiz
{
"lesson_id": 1,
"answers": [0, 2, 1, 0, 3]
}
POST /ask-tutor
{
"question": "What are functions in Python?"
}
GET /generate-coding-challenge
POST /submit-code
{
"code": "print('Hello World')",
"challenge_id": "challenge_4_123456789"
}
- Computer basics and operating systems
- Python installation and environment setup
- Learn language fundamentals
- Variables and data types
- Program flow control
- Functions
- Collections (Lists, Tuples, Sets, Dictionaries)
- File handling
- Using modules and libraries
- Error handling
- Building small practical projects
- Package management tools (pip, venv)
- Working on open source projects
- Specialized libraries (NumPy, Pandas, Matplotlib)
The application uses in-memory storage by default. For production:
- Add database (SQLite, PostgreSQL)
- Implement user authentication system
- Add session management
- Implement progress backup system
pip install fastapi
pip install uvicorn
pip install langchain-google-genai
pip install python-dotenv
- Fork the repository
- 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