Welcome to the Interactive Git Tutorial! This web application is designed to help users learn Git commands in an interactive way. The platform allows users to practice basic to advanced Git commands in a controlled environment, providing instant feedback and guiding them through various levels of difficulty. This tool is perfect for beginners who want to get hands-on experience with Git without the risk of making mistakes in a real repository.
- 🛠️ Interactive Command Input: Users can input Git commands and receive immediate feedback.
- 🎯 Level-Based Learning: The tutorial is structured in levels, each focusing on specific Git commands and concepts.
- ⚡ Real-Time Feedback: After executing a command, users get instant feedback, showing the output or any errors.
- 🚀 Progression System: Users progress through levels by successfully completing tasks, which helps reinforce their learning.
Backend:
- 🐍 Python
- 🔥 Flask (for handling API requests)
- 🌐 Flask-Cors (for handling Cross-Origin Resource Sharing)
Frontend:
- ⚛️ React.js
- 🎨 CSS (for styling)
Follow these steps to set up the project locally.
- Python 3.x
- Node.js & npm
-
Clone the repository:
git clone https://github.com/Apatoma/interactive-git-tutorial.git cd interactive-git-tutorial
-
Set up the backend:
cd backend pip install -r requirements.txt python run.py
-
Set up the frontend:
cd frontend npm install npm start
-
Access the application:
- The backend will be running on
http://localhost:5000
- The frontend will be running on
http://localhost:3000
- The backend will be running on
- Enter Git Commands: Use the input field to enter Git commands you want to practice.
- Receive Feedback: The application will display the output of the command or any errors that occurred.
- Progress Through Levels: Complete the tasks outlined in each level to move to the next one.
- Learn by Doing: Use the application to familiarize yourself with common Git operations in a safe environment.
- 🔧 Advanced Levels: Introduce more complex levels covering advanced Git topics such as rebasing, cherry-picking, and stashing.
- 💡 Command Hints: Provide optional hints or suggestions for users who are stuck on a level.
- 🗂️ Persistent Progress: Implement user accounts to save progress across sessions.
- 🎥 Interactive Demos: Include visual demos to accompany the textual instructions and command execution.
Contributions are welcome! Please fork the repository and submit a pull request with your changes or improvements.
This project is licensed under the MIT License. See the LICENSE file for more details.
Made with ❤️ by Alejandro (https://github.com/Apatoma)