Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true

[*.{yml,yaml}]
indent_size = 2

[*.{json,js,ts}]
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
38 changes: 38 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Environment Configuration Template
# Copy this file to .env and update with your specific values

# Application Settings
APP_NAME=YourProjectName
DEBUG=false
LOG_LEVEL=INFO
SECRET_KEY=your-secret-key-here

# Database Configuration
DATABASE_URL=sqlite:///app.db
# For PostgreSQL: postgresql://user:password@localhost:5432/dbname
# For MySQL: mysql://user:password@localhost:3306/dbname

# External Services
API_KEY=your-api-key-here
EXTERNAL_SERVICE_URL=https://api.example.com

# Email Configuration (if applicable)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your-email@example.com
EMAIL_PASSWORD=your-email-password

# Redis Configuration (if applicable)
REDIS_URL=redis://localhost:6379/0

# File Storage (if applicable)
MEDIA_ROOT=/path/to/media/files
STATIC_ROOT=/path/to/static/files

# Security Settings
ALLOWED_HOSTS=localhost,127.0.0.1,your-domain.com
CORS_ALLOWED_ORIGINS=http://localhost:3000,https://your-frontend.com

# Feature Flags
ENABLE_FEATURE_X=false
ENABLE_DEBUG_TOOLBAR=false
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
- OS: [e.g. Ubuntu 20.04, Windows 10, macOS 12.0]
- Version: [e.g. 1.2.3]
- Python/Node.js version: [e.g. Python 3.9, Node.js 18.0]

**Additional context**
Add any other context about the problem here.

**Possible Solution**
If you have ideas on how to fix the issue, please describe them here.
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Feature request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Use Cases**
Describe specific use cases where this feature would be beneficial.

**Implementation Ideas**
If you have ideas on how this could be implemented, please describe them here.

**Additional context**
Add any other context, mockups, or screenshots about the feature request here.
41 changes: 41 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## Description

Please include a summary of the changes and the related issue. Please also include relevant motivation and context.

Fixes # (issue)

## Type of change

Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update

## How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

- [ ] Test A
- [ ] Test B

**Test Configuration**:
* Operating System:
* Python/Node.js version:
* Dependencies version:

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

## Additional Notes

Add any additional notes, concerns, or considerations here.
65 changes: 65 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: CI

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
# Customize based on your project's needs
python-version: [3.8, 3.9, "3.10", "3.11"]
# node-version: [16, 18, 20]

steps:
- uses: actions/checkout@v4

# Python setup example - uncomment and customize as needed
# - name: Set up Python ${{ matrix.python-version }}
# uses: actions/setup-python@v4
# with:
# python-version: ${{ matrix.python-version }}

# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip
# pip install -r requirements.txt
# pip install -r requirements-dev.txt

# - name: Lint with flake8
# run: |
# # stop the build if there are Python syntax errors or undefined names
# flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
# flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

# - name: Test with pytest
# run: |
# pytest

# Node.js setup example - uncomment and customize as needed
# - name: Use Node.js ${{ matrix.node-version }}
# uses: actions/setup-node@v4
# with:
# node-version: ${{ matrix.node-version }}

# - name: Install dependencies
# run: npm ci

# - name: Run linter
# run: npm run lint

# - name: Run tests
# run: npm test

# Placeholder step - replace with actual CI steps
- name: Placeholder CI step
run: |
echo "Replace this with your actual CI steps"
echo "Examples: linting, testing, building"
echo "Current directory contents:"
ls -la
128 changes: 128 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
name: Release

on:
push:
tags:
- 'v*' # Trigger on version tags like v1.0.0

jobs:
create-release:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full history for changelog

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'

# Python build example
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install build twine

- name: Build package
run: python -m build

- name: Check package
run: twine check dist/*

# Node.js build example (uncomment if using Node.js)
# - name: Set up Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '18'
# registry-url: 'https://registry.npmjs.org'

# - name: Install dependencies
# run: npm ci

# - name: Build package
# run: npm run build

# - name: Run tests
# run: npm test

- name: Extract release notes
id: extract-release-notes
run: |
# Extract release notes from CHANGELOG.md
version=${GITHUB_REF#refs/tags/}
awk -v version="$version" '
/^## \[/ {
if ($0 ~ version) {
found=1; next
} else if (found) {
exit
}
}
found && /^## \[/ { exit }
found { print }
' CHANGELOG.md > release_notes.txt

- name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body_path: release_notes.txt
draft: false
prerelease: false

# Python package publishing (uncomment if publishing to PyPI)
# - name: Publish to PyPI
# env:
# TWINE_USERNAME: __token__
# TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
# run: twine upload dist/*

# Node.js package publishing (uncomment if publishing to npm)
# - name: Publish to npm
# run: npm publish
# env:
# NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

# Docker image publishing (uncomment if publishing Docker images)
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2

# - name: Login to Docker Hub
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}

# - name: Build and push Docker image
# uses: docker/build-push-action@v4
# with:
# context: .
# push: true
# tags: |
# your-username/your-project:latest
# your-username/your-project:${{ github.ref_name }}

# Notify about release
notify:
needs: create-release
runs-on: ubuntu-latest
if: always()

steps:
- name: Notify success
if: needs.create-release.result == 'success'
run: |
echo "βœ… Release ${{ github.ref }} created successfully!"
# Add notification logic here (Slack, Discord, email, etc.)

- name: Notify failure
if: needs.create-release.result == 'failure'
run: |
echo "❌ Release ${{ github.ref }} failed!"
# Add failure notification logic here
Loading