Giter Site home page Giter Site logo

app-generator / sample-django-celery Goto Github PK

View Code? Open in Web Editor NEW
23.0 4.0 3.0 25.65 MB

Django & Celery Integration - Open-Source Sample | AppSeed.us

Home Page: https://appseed.us

License: Other

Shell 0.01% Dockerfile 0.03% Python 2.00% CSS 36.84% JavaScript 1.55% SCSS 38.91% HTML 20.66%
appseed-sample celery django open-source

sample-django-celery's Introduction

Django Tasks Manager via Celery

Open-source Django Dashboard generated by AppSeed op top of a modern design. Designed for those who like bold elements and beautiful websites, Soft UI Dashboard is ready to help you create stunning websites and webapps. Soft UI Dashboard is built with over 70 frontend individual elements, like buttons, inputs, navbars, nav tabs, cards, or alerts, giving you the freedom of choosing and combining.


Built with App Generator, timestamp 2022-10-03 15:29

  • โœ… Up-to-date dependencies
  • โœ… Bootstrap 5 Design, Dark Mode (persistent)
  • โœ… Async TASKS via Celery
    • Tasks on-demand creation
    • Scrips Execution via Celery
    • Tasks Canceling
    • LOGS view option in the UI

Open-Source Tasks Manager - Powered by Django and Celery.


โœจ Video Presentation

Django-And-Celery-Tasks-Manager.mp4

โœจ How to use it

Download the code

$ # Get the code
$ git clone https://github.com/app-generator/sample-django-celery.git
$ cd sample-django-celery

โœจ Start the app in Docker

Step 1 - Download the code from the GH repository (using GIT)

$ # Get the code
$ git clone https://github.com/app-generator/sample-django-celery.git
$ cd sample-django-celery

Step 2 - Start the APP in Docker

$ docker-compose up --build 

Visit http://localhost:5085 in your browser. The app should be up & running.


๐Ÿ‘‰ Set Up for Unix, MacOS

Install modules via VENV

$ virtualenv env
$ source env/bin/activate
$ pip3 install -r requirements.txt

Set Up Database

$ python manage.py makemigrations
$ python manage.py migrate

Start the app

$ python manage.py runserver

At this point, the app runs at http://127.0.0.1:8000/.


Start Celery (another terminal)

Note: Redis server is expected on port 6379 (default)

$ celery --app=core.celery.app worker --loglevel=info 

๐Ÿ‘‰ Set Up for Windows

Install modules via VENV (windows)

$ virtualenv env
$ .\env\Scripts\activate
$ pip3 install -r requirements.txt

Set Up Database

$ python manage.py makemigrations
$ python manage.py migrate

Start the app

$ python manage.py runserver

At this point, the app runs at http://127.0.0.1:8000/.


โœจ Create Users

By default, the app redirects guest users to authenticate. In order to access the private pages, follow this set up:

  • Start the app via python manage.py runserver
  • Access the registration page and create a new user:
    • http://127.0.0.1:8000/register/
  • Access the sign in page and authenticate
    • http://127.0.0.1:8000/login/

โœจ Code-base structure

The project is coded using a simple and intuitive structure presented below:

< PROJECT ROOT >
   |
   |-- core/                               # Implements app configuration
   |    |-- settings.py                    # Defines Global Settings
   |    |-- wsgi.py                        # Start the app in production
   |    |-- urls.py                        # Define URLs served by all apps/nodes
   |
   |-- apps/
   |    |
   |    |-- tasks/                         # Implements Celery LOGIC
   |    |    |-- views.py                  # Loads INDEX page for tasks
   |    |    |-- urls.py                   # Define Celery routes  
   |    |
   |    |-- home/                          # A simple app that serve HTML files
   |    |    |-- views.py                  # Serve HTML pages for authenticated users
   |    |    |-- urls.py                   # Define some super simple routes  
   |    |
   |    |-- authentication/                # Handles auth routes (login and register)
   |    |    |-- urls.py                   # Define authentication routes  
   |    |    |-- views.py                  # Handles login and registration  
   |    |    |-- forms.py                  # Define auth forms (login and register) 
   |    |
   |    |-- static/
   |    |    |-- <css, JS, images>         # CSS files, Javascripts files
   |    |
   |    |-- templates/                     # Templates used to render pages
   |         |-- includes/                 # HTML chunks and components
   |         |    |-- navigation.html      # Top menu component
   |         |    |-- sidebar.html         # Sidebar component
   |         |    |-- footer.html          # App Footer
   |         |    |-- scripts.html         # Scripts common to all pages
   |         |
   |         |-- layouts/                   # Master pages
   |         |    |-- base-fullscreen.html  # Used by Authentication pages
   |         |    |-- base.html             # Used by common pages
   |         |
   |         |-- accounts/                  # Authentication pages
   |         |    |-- login.html            # Login page
   |         |    |-- register.html         # Register page
   |         |
   |         |-- home/                      # UI Kit Pages
   |              |-- index.html            # Index page
   |              |-- 404-page.html         # 404 page
   |              |-- *.html                # All other pages
   |
   |-- requirements.txt                     # Development modules - SQLite storage
   |
   |-- .env                                 # Inject Configuration via Environment
   |-- manage.py                            # Start the app - Django default start script
   |
   |-- ************************************************************************


Django Tasks Manager via Celery - Open-source starter provided by AppSeed Generator.

sample-django-celery's People

Contributors

app-generator avatar cyber237 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sample-django-celery's Issues

ENH - Django Celery Integration + UI (tasks manager)

The existing Django codebase should be enhanced with Celery Integration plus a page where tasks can be managed and view the execution stats.

Current Project:
https://github.com/app-generator/django-soft-ui-dashboard

Here are the requirements:

Tables:

  • tasks: id (PK), name, script_name, description
  • tasks_status: id (PK), task_id, ts_start, ts_end, status, log_file

What the developer should deliver:

Feature 1 - Use the existing UI and code pages:

  • task creation/update page (factorized using a single page)
  • tasks index page, where all tasks are listed using a paginated data table

Feature 2 - Interactions

  • users are able to create tasks
  • if a task is running, in the UI, the user is able to kill the status

Delivery time ~= 5days.

ENH - List the results in Index page

Hello @cyber237

The new component should list the items saved in the table:

django_celery_results_task_result

Another improvement is to correlate each item with the LOG saved in the celery_logs folder.
At this moment we have the logs, but is impossible to link the LOG with an item of django_celery_results_task_result

image

Ty!

ValueError at /tasks/cancel

Hi whenever I click on cancel this error comes up :

ValueError at /tasks/cancel/aff1a8a6-56d4-4c0a-be72-5a6367597787
Exception information must includethe exception type

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.