SMLAlgoHub là một nền tảng toàn diện được thiết kế để chia sẻ kiến thức thuật toán và cung cấp một môi trường lập trình cạnh tranh. Nền tảng này cung cấp các nguồn tài nguyên giáo dục bao gồm nhiều khái niệm thuật toán khác nhau, cùng với một hệ thống đánh giá tích hợp cho phép người dùng gửi các giải pháp cho các vấn đề lập trình ở nhiều cấp độ và danh mục khó khăn.
Dự án này nhằm mục đích tạo ra một hệ sinh thái do cộng đồng thúc đẩy, nơi các lập trình viên có thể học hỏi, thực hành và cạnh tranh để cải thiện tư duy thuật toán và kỹ năng giải quyết vấn đề của họ.
- Hướng dẫn và giải thích toàn diện về các thuật toán và cấu trúc dữ liệu phổ biến
- Biểu diễn trực quan và hướng dẫn từng bước cho các khái niệm thuật toán phức tạp
- Nhiều cấp độ khó để phù hợp với người học từ người mới bắt đầu đến nâng cao
- Các ứng dụng thực tế và ví dụ thực tế về thuật toán
- Bộ sưu tập đa dạng các bài toán lập trình thuộc nhiều danh mục khác nhau
- Các bài toán được gắn thẻ để dễ dàng lọc và tìm kiếm
- Nhiều mức độ khó để học tập tiến bộ
- Mô tả bài toán chi tiết với thông số kỹ thuật đầu vào/đầu ra
- Đánh giá tự động các giải pháp đã gửi
- Phản hồi thời gian thực về tính chính xác và hiệu quả của mã
- Hỗ trợ nhiều ngôn ngữ lập trình
- Các trường hợp thử nghiệm toàn diện để xác minh kỹ lưỡng
- Hệ thống xếp hạng người dùng dựa trên các vấn đề đã giải quyết và các cuộc thi
- Lộ trình học tập được cá nhân hóa và các vấn đề được đề xuất
- Theo dõi tiến trình và phân tích hiệu suất
- Các tính năng xã hội để tương tác cộng đồng và chia sẻ kiến thức
- FastAPI 🚀: High-performance Python web framework for building APIs
- MongoDB 🍃: NoSQL database for flexible data storage
- Redis 💾: In-memory data structure store for caching
- RabbitMQ 🐇: Message broker for handling submission queue
- Firebase 🔥: Authentication and messaging services
- Domain-Driven Design (DDD) architecture with simplified domain layer
- RESTful API design principles
- Containerized deployment using Docker
- Monolithic architecture
- Python 3.8+
- MongoDB
- Redis
- RabbitMQ
- Firebase account
- Clone the repository
git clone https://github.com/Vanhoai/SMLAlgoHub.git
cd SMLAlgoHub
- Install dependencies
pip install -r requirements.txt
- Set up environment variables
cp .env.example .env
# Edit .env with your configurations
- Run the application
uvicorn app.main:app --reload
docker build -t smlalgohub .
docker run -p 8000:8000 smlalgohub
Once the application is running, you can access the API documentation at:
http://localhost:8000/docs
SMLAlgoHub/
├── app/
│ ├── domain/
│ │ ├── models/
│ │ └── repositories/
│ ├── application/
│ │ ├── services/
│ │ └── dtos/
│ ├── infrastructure/
│ │ ├── database/
│ │ ├── firebase/
│ │ ├── redis/
│ │ └── rabbitmq/
│ ├── presentation/
│ │ ├── controllers/
│ │ └── middlewares/
│ └── main.py
├── tests/
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── README.md
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Project Link: https://github.com/Vanhoai/SMLAlgoHub