Skip to content

A gamified Django API for self-improvement. Create challenges, earn XP, unlock titles. leaderboard. Notifications keep users engaged

License

Notifications You must be signed in to change notification settings

HasanAshab/ranker-api

Repository files navigation

Ranker API

Ranker is a Django API that allows users to create challenges to gain XP. XP helps users achieve levels, and at specific levels, they gain titles like Beginner, Challenger (customizable) etc. Daily ranks are calculated based on total XP.

Features

Here are some core features:

  • Authentication: All nesssary authentication and authorization features (including 2FA and social login) provided by All-Auth.
  • Challenge Creation: Users can create challenges with specific goals, difficulty and due date (optional).
  • Challenge Steps: Users can break challenge into several steps to complete it faster.
  • Challenge and Step Reordering: Users can reorder challenges and its steps based on their personal preference and priority.
  • Difficulty: Admin and staffs can create custom difficulty levels with associated colors and XP.
  • XP Tracking: Users earn XP for completing challenges.
  • Leveling Up: Users achieve higher levels based on their total XP.
  • Title Achievement: Users gain titles from Beginner to Titan at specific levels (customizable by admin and staffs).
  • Ranking: Daily ranks are calculated based on total XP.

AI Features

  • Challenge Steps Generation: Users can generate steps for completing a challenge.

Comming Soon

  • Notifications: Users receive notifications for weekly progress, level title achievements, and more.
  • Regular Challenges: Users can create regular challenges (e.g. daily, weekly, monthly).

Setup

  1. Clone the repository:

    git clone https://github.com/HasanAshab/ranker-api.git
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run migrations:

    python manage.py migrate
  4. Create a superuser:

    python manage.py createsuperuser
  5. Run the development server:

    python manage.py runserver
  6. Access the API:

    • Admin Panel: http://localhost:8000/admin/
    • API Root: http://localhost:8000/api/
    • API Documentation: http://localhost:8000/api/docs/ui/swagger/
  7. Test the API:

    python manage.py test

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A gamified Django API for self-improvement. Create challenges, earn XP, unlock titles. leaderboard. Notifications keep users engaged

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages