{"id":34502775,"url":"https://github.com/sorna-fast/sornaflow","last_synced_at":"2026-05-08T03:04:29.953Z","repository":{"id":328680027,"uuid":"1116350943","full_name":"sorna-fast/SornaFlow","owner":"sorna-fast","description":"Organizational workflow platform built with Django, featuring employee management, task assignment, reporting, and Jalali date support.","archived":false,"fork":false,"pushed_at":"2025-12-21T14:45:33.000Z","size":89,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-25T13:37:37.890Z","etag":null,"topics":["django","django-templates","docker-compose","dockerfile","html-css-javascript","mysql-database"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sorna-fast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-14T17:31:10.000Z","updated_at":"2025-12-21T14:45:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sorna-fast/SornaFlow","commit_stats":null,"previous_names":["sorna-fast/sornaflow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sorna-fast/SornaFlow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorna-fast%2FSornaFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorna-fast%2FSornaFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorna-fast%2FSornaFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorna-fast%2FSornaFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sorna-fast","download_url":"https://codeload.github.com/sorna-fast/SornaFlow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorna-fast%2FSornaFlow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32764771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T02:36:36.067Z","status":"ssl_error","status_checked_at":"2026-05-08T02:36:07.210Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","django-templates","docker-compose","dockerfile","html-css-javascript","mysql-database"],"created_at":"2025-12-24T02:19:58.012Z","updated_at":"2026-05-08T03:04:29.941Z","avatar_url":"https://github.com/sorna-fast.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# **README (English Version)**\n\n# 🌟 **SornaFlow**\n\n**SornaFlow** is an organizational web-based system built with **Django 6.0**, designed to streamline company operations, employee management, task assignment, and reporting workflows.  \nIt features a modular architecture, custom user model, Jalali date support, secure file uploads, and fully customized admin panels powered by environment-based configuration.\n\n---\n\n## 🚀 **Features**\n\n- ✅ Custom user model (`EmployeeUser`) with complete personal \u0026 company fields  \n- ✅ Company management with logo upload  \n- ✅ Task assignment with automatic email notifications  \n- ✅ Employee report submission with file attachments  \n- ✅ Full Jalali date support (`django-jalali`)  \n- ✅ Secure UUID‑based file upload paths  \n- ✅ Environment variable–based configuration  \n- ✅ Custom Django admin with image previews \u0026 read‑only inlines  \n- ✅ Modular architecture with clean separation of concerns  \n- ✅ Reusable HTML templates with shared CSS/JS assets  \n\n---\n\n## 📁 **Project Structure**\n\n```\nSornaFlow/\n├── apps/\n│   ├── accounts/                 # Authentication \u0026 employee management\n│   ├── companies/                # Company information\n│   ├── tasks/                    # Task management\n│   ├── reports/                  # Report management\n│   └── core/                     # Shared utilities (file upload handler)\n├── media/                        # Uploaded files\n├── static/\n│   ├── css/style.css\n│   └── js/myscript.js\n├── templates/\n│   ├── main_template.html\n│   ├── accounts_app/Login.html\n│   └── tasks_app/employee_dashboard.html\n├── .env.example                  # Environment variables template\n├── .gitignore\n├── .dockerignore                 # Docker ignore rules\n├── Dockerfile                    # Docker image definition\n├── docker-compose.yml            # Multi-container setup (web + MySQL)\n├── manage.py\n├── requirements.txt\n├── README.md\n└── LICENSE\n\n```\n\n---\n\n## 📦 **Requirements**\n\n```\nasgiref==3.11.0\nDjango==6.0\ndjango-jalali==7.4.0\ndjango-jalali-date==2.0.0\njalali_core==1.0.0\njdatetime==5.2.0\nmysqlclient==2.2.7\npillow==12.0.0\npython-decouple==3.8\nsqlparse==0.5.4\n```\n\n---\n\n## ⚙️ **Installation \u0026 Setup**\n\n### **1. Clone the repository**\n\n```bash\ngit clone https://github.com/sorna-fast/SornaFlow.git\ncd SornaFlow\n```\n\n### **2. Create a virtual environment**\n\n```bash\npython -m venv venv\nsource venv/bin/activate      # Linux/macOS\nvenv\\Scripts\\activate         # Windows\n```\n\n### **3. Install dependencies**\n\n```bash\npip install -r requirements.txt\n```\n\n### **4. Configure environment variables**\n\n```bash\ncp .env.example .env\n```\n\nEdit `.env`:\n\n```env\nSECRET_KEY=your_strong_secret_key_here\nDEBUG=True\nDB_NAME=sorna_db\nDB_USER=your_db_user\nDB_PASSWORD=your_db_password\nDB_HOST=localhost\nDB_PORT=3306\nEMAIL_HOST_USER=your_email@gmail.com\nEMAIL_HOST_PASSWORD=your_email_password\nDEFAULT_FROM_EMAIL=noreply@sornaflow.com\n```\n\n### **5. Apply migrations**\n\n```bash\npython manage.py makemigrations\npython manage.py migrate\n```\n\n### **6. Create a superuser**\n\n```bash\npython manage.py createsuperuser\n```\n\n### **7. Run the server**\n\n```bash\npython manage.py runserver\n```\n\n---\n\n## 🐳 **Docker Setup (Optional)**\n\nTo run SornaFlow using Docker:\n\n### 1. Build and start containers\n\n```bash\ndocker-compose up --build\n```\n\n### 2. Create a superuser inside the web container\n\n```bash\ndocker-compose exec web python manage.py createsuperuser\n```\n\n### 3. Access the app\n\n- Admin Panel: [http://localhost:8000/admin/](http://localhost:8000/admin/)  \n- Employee Login: [http://localhost:8000/users/login/](http://localhost:8000/users/login/)\n\n---\n\n## 🔐 **Authentication Flow**\n\n- Employees log in via `/users/login/`  \n- Admin users **cannot** log in through the employee login page  \n- Successful login redirects to the employee dashboard  \n- Logout available at `/users/logout/`  \n\n---\n\n## 🌐 **Important URLs**\n\n| Feature | URL |\n|--------|-----|\n| Admin Panel | `/admin/` |\n| Employee Login | `/users/login/` |\n| Employee Logout | `/users/logout/` |\n| Employee Dashboard | `/tasks/dashboard/` |\n\n---\n\n## 💡 **Project Improvements**\n\n### ✅ Security\n- Environment variables for sensitive data  \n- UUID‑based secure file upload paths  \n\n### ✅ Architecture\n- Dedicated apps with clear separation of concerns  \n- Shared utilities centralized in `apps/core/`  \n- Optional service layer for business logic  \n\n### ✅ User Experience\n- Email notifications for task assignments  \n- Responsive admin interface with image previews  \n- Jalali date support for Persian calendar  \n\n---\n\n## 📬 **Contact**\n\n- **GitHub:** [sorna-fast](https://github.com/sorna-fast)  \n- **Email:** masudpythongit@gmail.com  \n- **Telegram:** [@Masoud_Ghasemi_sorna_fast](https://t.me/Masoud_Ghasemi_sorna_fast)  \n- **LinkedIn:** https://www.linkedin.com/in/masoud-ghasemi-748412381  \n\n---\n\n## 📝 **License**\n\nThis project is released under the terms of the included **[LICENSE](./LICENSE)** file.\n\n---\n\n# **نسخه فارسی README**\n\n# 🌟 **SornaFlow**\n\n**SornaFlow** یک سامانه سازمانی تحت وب مبتنی بر **Django 6.0** است که برای مدیریت شرکت‌ها، کارمندان، وظایف و گزارش‌ها طراحی شده است.  \nاین پروژه از معماری ماژولار، مدل کاربر سفارشی، تاریخ شمسی، آپلود امن فایل و پنل ادمین پیشرفته پشتیبانی می‌کند.\n\n---\n\n## 🚀 **ویژگی‌ها**\n\n- ✅ مدل کاربر سفارشی با اطلاعات کامل پرسنلی  \n- ✅ مدیریت شرکت‌ها همراه با آپلود لوگو  \n- ✅ تخصیص وظایف با ارسال ایمیل  \n- ✅ ثبت گزارش همراه با فایل ضمیمه  \n- ✅ پشتیبانی از تاریخ شمسی (`django-jalali`)  \n- ✅ مسیرهای آپلود امن مبتنی بر UUID  \n- ✅ تنظیمات امن با متغیرهای محیطی  \n- ✅ پنل ادمین سفارشی با پیش‌نمایش تصویر  \n- ✅ معماری ماژولار با جداسازی مسئولیت‌ها  \n- ✅ قالب‌های HTML ماژولار با CSS و JS مشترک  \n\n---\n\n## 📁 **ساختار پروژه**\n\n```\nSornaFlow/\n├── apps/\n│   ├── accounts/                 # مدیریت احراز هویت و کارمندان\n│   ├── companies/                # اطلاعات شرکت‌ها\n│   ├── tasks/                    # مدیریت وظایف\n│   ├── reports/                  # مدیریت گزارشات\n│   └── core/                     # ابزارهای مشترک (آپلود فایل)\n├── media/                        # فایل‌های آپلود شده\n├── static/\n│   ├── css/style.css\n│   └── js/myscript.js\n├── templates/\n│   ├── main_template.html\n│   ├── accounts_app/Login.html\n│   └── tasks_app/employee_dashboard.html\n├── .env.example                  # قالب متغیرهای محیطی\n├── .gitignore\n├── .dockerignore                 # فایل‌های نادیده‌گرفته‌شده در Docker\n├── Dockerfile                    # تعریف ایمیج Django\n├── docker-compose.yml            # اجرای چندکانتینری (Django + MySQL)\n├── manage.py\n├── requirements.txt\n├── README.md\n└── LICENSE\n\n```\n\n---\n\n## 📦 **وابستگی‌ها**\n\n```\nasgiref==3.11.0\nDjango==6.0\ndjango-jalali==7.4.0\ndjango-jalali-date==2.0.0\njalali_core==1.0.0\njdatetime==5.2.0\nmysqlclient==2.2.7\npillow==12.0.0\npython-decouple==3.8\nsqlparse==0.5.4\n```\n\n---\n\n## ⚙️ **نصب و راه‌اندازی**\n\n### ۱. کلون کردن پروژه\n\n```bash\ngit clone https://github.com/sorna-fast/SornaFlow.git\ncd SornaFlow\n```\n\n### ۲. ساخت محیط مجازی\n\n```bash\npython -m venv venv\nsource venv/bin/activate\nvenv\\Scripts\\activate\n```\n\n### ۳. نصب وابستگی‌ها\n\n```bash\npip install -r requirements.txt\n```\n\n### ۴. تنظیم متغیرهای محیطی\n\n```bash\ncp .env.example .env\n```\n\nویرایش `.env`:\n\n```env\nSECRET_KEY=your_strong_secret_key_here\nDEBUG=True\nDB_NAME=sorna_db\nDB_USER=your_db_user\nDB_PASSWORD=your_db_password\nDB_HOST=localhost\nDB_PORT=3306\nEMAIL_HOST_USER=your_email@gmail.com\nEMAIL_HOST_PASSWORD=your_email_password\nDEFAULT_FROM_EMAIL=noreply@sornaflow.com\n```\n\n### ۵. اعمال مایگریشن‌ها\n\n```bash\npython manage.py makemigrations\npython manage.py migrate\n```\n\n### ۶. ساخت سوپر یوزر\n\n```bash\npython manage.py createsuperuser\n```\n\n### ۷. اجرای سرور\n\n```bash\npython manage.py runserver\n```\n\n---\n\n## 🐳 **راه‌اندازی با Docker (اختیاری)**\n\nبرای اجرای SornaFlow با Docker:\n\n### ۱. ساخت و اجرای کانتینرها\n\n```bash\ndocker-compose up --build\n```\n\n### ۲. ساخت سوپر یوزر داخل کانتینر وب\n\n```bash\ndocker-compose exec web python manage.py createsuperuser\n```\n\n### ۳. دسترسی به سامانه\n\n- پنل ادمین: [http://localhost:8000/admin/](http://localhost:8000/admin/)  \n- ورود کارمند: [http://localhost:8000/users/login/](http://localhost:8000/users/login/)\n\n---\n## 🔐 **احراز هویت**\n\n- ورود کارمندان: `/users/login/`  \n- عدم امکان ورود ادمین از این صفحه  \n- هدایت به داشبورد پس از ورود موفق  \n- خروج: `/users/logout/`  \n\n---\n\n## 🌐 **مسیرهای مهم**\n\n| بخش | مسیر |\n|-----|------|\n| پنل ادمین | `/admin/` |\n| ورود کارمند | `/users/login/` |\n| خروج | `/users/logout/` |\n| داشبورد کارمند | `/tasks/dashboard/` |\n\n---\n\n## 💡 **بهبودهای پروژه**\n\n### ✅ امنیت\n- استفاده از متغیرهای محیطی  \n- مسیرهای آپلود امن مبتنی بر UUID  \n\n### ✅ معماری\n- اپ‌های اختصاصی با جداسازی مسئولیت‌ها  \n- ابزارهای مشترک در `apps/core/`  \n- لایه سرویس اختیاری  \n\n### ✅ تجربه کاربری\n- ارسال ایمیل هنگام تخصیص وظایف  \n- پنل ادمین واکنش‌گرا با پیش‌نمایش فایل  \n- پشتیبانی از تاریخ شمسی  \n\n---\n\n## 📬 **تماس**\n\n- **گیت هاب:** [sorna-fast](https://github.com/sorna-fast)  \n- **ایمیل:** masudpythongit@gmail.com  \n- **تلگرام:** [@Masoud_Ghasemi_sorna_fast](https://t.me/Masoud_Ghasemi_sorna_fast)  \n- **لینکدین:** https://www.linkedin.com/in/masoud-ghasemi-748412381  \n\n---\n\n## 📝 **مجوز**\n\nاین پروژه تحت مجوز موجود در فایل **[LICENSE](./LICENSE)** منتشر شده است.\n\n---\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsorna-fast%2Fsornaflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsorna-fast%2Fsornaflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsorna-fast%2Fsornaflow/lists"}