Skip to content

Automatically manage your github account by simply creating account in this app. continure with github, add token then all data will be available here

License

Notifications You must be signed in to change notification settings

tarxemo/github_management_project

GitHub Management Project

A comprehensive Django-based application for managing GitHub repositories, users, and automating GitHub-related tasks. This project provides a robust backend with GraphQL API, task scheduling with Celery, and secure deployment configurations.

πŸš€ Features

  • GitHub Integration: Interact with GitHub's API to manage repositories and user data

  • Task Automation: Schedule and manage background tasks with Celery

  • GraphQL API: Flexible and efficient data querying with Graphene-Django

  • User Authentication: Secure authentication system with JWT support

  • Background Processing: Asynchronous task processing with Redis and Celery

  • REST API: Traditional REST endpoints for compatibility

  • Deployment Ready: Includes deployment scripts for production environments


    Example of the screenshoot

image

πŸ› οΈ Tech Stack

  • Backend: Django 5.1.6
  • Database: PostgreSQL
  • Task Queue: Celery with Redis as broker
  • Authentication: JWT (JSON Web Tokens)
  • API: GraphQL (Graphene-Django) & REST
  • Frontend: (To be implemented or specify if exists)
  • Deployment: Gunicorn, Nginx, Let's Encrypt

πŸ“¦ Prerequisites

  • Python 3.8+
  • PostgreSQL
  • Redis
  • GitHub OAuth App credentials
  • Virtual environment (recommended)

πŸš€ Getting Started

Environment Setup

  1. Clone the repository:

    git clone <repository-url>
    cd RB
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Create a .env file in the project root with the following variables:

    DEBUG=True
    SECRET_KEY=your-secret-key-here
    DATABASE_URL=postgres://user:password@localhost:5432/dbname
    REDIS_URL=redis://localhost:6379/0
    GITHUB_ACCESS_TOKEN=your-github-token

Database Setup

  1. Create a PostgreSQL database
  2. Run migrations:
    python manage.py migrate

Running the Application

  1. Start the development server:

    python manage.py runserver
  2. Start Celery worker (in a new terminal):

    celery -A github_management_project worker -l info
  3. Start Celery beat for scheduled tasks (in another terminal):

    celery -A github_management_project beat -l info

πŸ” Environment Variables

Variable Description Required
DEBUG Enable debug mode Yes
SECRET_KEY Django secret key Yes
DATABASE_URL Database connection URL Yes
REDIS_URL Redis connection URL Yes
GITHUB_ACCESS_TOKEN GitHub personal access token Yes
ALLOWED_HOSTS Comma-separated list of allowed hosts Yes
CORS_ALLOWED_ORIGINS Comma-separated list of allowed origins No

πŸ§ͺ Running Tests

python manage.py test

πŸš€ Deployment

Production Setup

  1. Set up a production-ready web server (Nginx recommended)
  2. Configure Gunicorn as the application server
  3. Set up SSL certificates (Let's Encrypt recommended)
  4. Use the deployment script:
    sudo ./deploy_django.sh

Environment Configuration

For production, ensure these settings are properly configured:

  • DEBUG=False
  • Proper ALLOWED_HOSTS
  • Secure SECRET_KEY
  • Production database settings
  • Proper CORS configuration

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

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

πŸ™ Acknowledgments

  • Django and the Django community
  • Celery for task queue management
  • All open-source libraries used in this project

πŸ“§ Contact

Project Link: https://github.tarxemo.com

About

Automatically manage your github account by simply creating account in this app. continure with github, add token then all data will be available here

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •