{"id":41467606,"url":"https://github.com/testpress/forge","last_synced_at":"2026-01-23T16:34:22.971Z","repository":{"id":251884368,"uuid":"838402956","full_name":"testpress/forge","owner":"testpress","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-28T05:44:16.000Z","size":100,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-28T06:29:12.811Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/testpress.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}},"created_at":"2024-08-05T15:11:11.000Z","updated_at":"2025-06-28T05:44:20.000Z","dependencies_parsed_at":"2024-09-14T23:53:08.911Z","dependency_job_id":"bc45058e-cf2d-469b-98ed-45ede9fa56f1","html_url":"https://github.com/testpress/forge","commit_stats":null,"previous_names":["testpress/forge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/testpress/forge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testpress%2Fforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testpress%2Fforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testpress%2Fforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testpress%2Fforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/testpress","download_url":"https://codeload.github.com/testpress/forge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testpress%2Fforge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28695553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T15:57:05.722Z","status":"ssl_error","status_checked_at":"2026-01-23T15:56:27.656Z","response_time":59,"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":[],"created_at":"2026-01-23T16:34:22.168Z","updated_at":"2026-01-23T16:34:22.964Z","avatar_url":"https://github.com/testpress.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forge - Django Project Template\n\nA modern, well-structured Django project template that helps you quickly set up new Django projects with best practices and modern tooling.\n\n## Features\n\n- 🚀 Modern Django project structure\n- 🧪 Pytest for testing\n- 🎨 Code formatting with black and isort\n- 📝 Template linting with djLint\n- 🔍 Pre-commit hooks for code quality\n- 📚 Documentation setup\n- 🌍 Localization support\n- 🛠️ Modular project structure\n- 📦 uv for dependency management\n- 🔄 Optional WebSocket support with Django Channels\n- 🚀 Optional FastAPI integration for modern APIs\n\n## Prerequisites\n\n- Python 3.12 or higher\n- [Cookiecutter](https://cookiecutter.readthedocs.io/) (`pip install cookiecutter`)\n- [uv](https://docs.astral.sh/uv/) for dependency management\n- Redis (if using Django Channels)\n\n## Usage\n\n1. Create a new project using the template:\n\n```bash\ncookiecutter https://github.com/testpress/forge.git\n```\n\n2. Follow the prompts to configure your project:\n   - Project name\n   - Project description\n   - Author name\n   - Email\n   - Version\n   - License\n   - Optional integrations:\n     - Preline UI components\n     - Sentry error tracking\n     - Django Channels for WebSocket support\n     - FastAPI for modern API development\n\n3. Navigate to your new project directory:\n```bash\ncd your_project_name\n```\n\n4. Install dependencies using uv:\n```bash\nuv sync\n```\n\n5. Initialize git and install pre-commit hooks:\n```bash\ngit init\npre-commit install\n```\n\n6. Run migrations:\n```bash\nuv run python manage.py migrate\n```\n\n7. Start the development server:\n```bash\nuv run python manage.py runserver\n```\n\n## Project Structure\n\n```\nyour_project_name/\n├── app/                    # Main application directory\n│   ├── api/               # FastAPI application (if enabled)\n│   │   ├── routers/       # API route modules\n│   │   ├── schemas/       # Pydantic schemas\n│   │   ├── dependencies/  # FastAPI dependencies\n│   │   └── middleware/    # Custom middleware\n│   ├── models/            # Django models\n│   ├── views/             # Django views\n│   ├── templates/         # Django templates\n│   └── static/            # Django static files\n├── config/                # Project settings and configuration\n├── docs/                  # Documentation\n├── locale/                # Translation files\n├── tests/                 # Test suite\n├── manage.py             # Django management script\n├── api.py                # FastAPI entry point (if enabled)\n├── pyproject.toml        # Project dependencies and tooling config\n└── uv.lock              # Locked dependencies\n```\n\n## Development\n\n- Run tests: `uv run pytest`\n- Format code: `uv run black .` and `uv run isort .`\n- Lint templates: `uv run djlint .`\n- Check code quality: `pre-commit run --all-files`\n- Add new dependencies: `uv add package-name`\n- Add development dependencies: `uv add --dev package-name`\n\n## Optional Features\n\n### Preline UI Components\nIf you selected \"y\" for `use_preline`, the template includes Preline UI components for a modern, responsive design.\n\n### Sentry Integration\nIf you selected \"y\" for `use_sentry`, the template includes Sentry configuration for error tracking and monitoring.\n\n### Django Channels\nIf you selected \"y\" for `use_channels`, the template includes:\n- Django Channels for WebSocket support\n- Redis channel layer configuration\n- ASGI application setup\n- Example WebSocket consumer structure\n\nTo use WebSockets:\n1. Make sure Redis is running on localhost:6379\n2. Add your WebSocket consumers in `app/consumers.py`\n3. Configure WebSocket routing in `config/asgi.py`\n4. Run the server with Daphne: `uv run daphne config.asgi:application`\n\n### FastAPI Integration\nIf you selected \"y\" for `use_fastapi`, the template includes:\n- Complete FastAPI application structure\n- JWT authentication with password hashing\n- User management API endpoints\n- Automatic API documentation (Swagger/ReDoc)\n- CORS middleware configuration\n- Pydantic schemas for request/response validation\n\nTo use FastAPI:\n1. Run the FastAPI server: `uv run uvicorn api:app --reload`\n2. Access API documentation: http://localhost:8001/docs\n3. Access ReDoc documentation: http://localhost:8001/redoc\n4. Test authentication: POST http://localhost:8001/api/v1/auth/login\n5. Test user endpoints: GET http://localhost:8001/api/v1/users\n\n**FastAPI Features:**\n- **Authentication**: JWT-based authentication with `/api/v1/auth/login`\n- **User Management**: Full CRUD operations at `/api/v1/users`\n- **Health Checks**: `/api/v1/health` and `/api/v1/ping`\n- **Documentation**: Auto-generated OpenAPI documentation\n- **CORS**: Configured for frontend development\n- **Validation**: Pydantic schemas for all requests/responses\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestpress%2Fforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftestpress%2Fforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestpress%2Fforge/lists"}