این پروژه یک سیستم فالویینگ ساده است که شامل قابلیتهای دنبال کردن، لغو دنبال کردن، نمایش تعداد دنبالکنندگان هر کاربر به صورت روزانه، و نمایش دنبالکنندگان مشترک دو کاربر میباشد.
- Python 3.x
- Flask
- Flask-RESTful
- Flask-SQLAlchemy
ابتدا مخزن پروژه را کلون کنید:
git clone https://github.com/DarkSnowJR/diginext-task-backend
cd diginext-task-backend
یک محیط مجازی ایجاد کنید و وابستگیها را نصب کنید:
python -m venv venv
source venv/bin/activate # در ویندوز: venv\Scripts\activate
pip install -r requirements.txt
برای راهاندازی دیتابیس و افزودن دادههای تست، اسکریپت add_test_data.py
را اجرا کنید:
python add_test_data.py
این اسکریپت دیتابیس را پاکسازی کرده و دادههای جدید را اضافه میکند.
برای اجرای سرور، دستور زیر را اجرا کنید:
export FLASK_APP=app.py # در ویندوز: set FLASK_APP=app.py
flask run
سرور در آدرس http://127.0.0.1:5000/
اجرا خواهد شد.
POST /follow
Content-Type: application/json
{
"follower_id": 1,
"followee_id": 2
}
POST /unfollow
Content-Type: application/json
{
"follower_id": 1,
"followee_id": 2
}
GET /followers_count/<user_id>
GET /common_followers/<user1_id>/<user2_id>
GET /users
مستندات API در فایل swagger.yaml
موجود است. میتوانید از ابزارهایی مانند Swagger Editor برای مشاهده و تست مستندات استفاده کنید.
- این پروژه نیازی به احراز هویت (Authentication) ندارد.
- برای بهبود scalability میتوان از روشهایی مانند کش کردن (Caching) و استفاده از دیتابیسهای توزیع شده (Distributed Databases) استفاده کرد.
برای توسعه و تغییرات در کد، میتوانید از دستور زیر برای اجرای تستها استفاده کنید:
pytest
این پروژه از استانداردهای کدنویسی PEP 8 پیروی میکند. لطفاً قبل از ارسال pull request مطمئن شوید که کد شما با این استانداردها سازگار است.
این پروژه تحت لایسنس MIT منتشر شده است. برای اطلاعات بیشتر به فایل LICENSE
مراجعه کنید.