Skip to content
Merged
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
75 changes: 75 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# ==============================================================================
# EditorConfig for {{project_name}}
# https://editorconfig.org
#
# This file enforces consistent coding styles across multiple editors and IDEs.
# It is designed to work out-of-the-box for 95% of standard programming
# environments and aligns with high-quality open-source standards.
# ==============================================================================

# Top-most EditorConfig file for the project
root = true

# ------------------------------------------------------------------------------
# Default Settings (Applies to all files)
# ------------------------------------------------------------------------------
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

# ------------------------------------------------------------------------------
# Web, Data, and Frontend (2 spaces)
# ------------------------------------------------------------------------------
[*.{js,jsx,ts,tsx,vue,json,yml,yaml,toml,html,css,scss,xml}]
indent_style = space
indent_size = 2

# ------------------------------------------------------------------------------
# Python (4 spaces, standard PEP-8)
# ------------------------------------------------------------------------------
[*.py]
indent_style = space
indent_size = 4

# ------------------------------------------------------------------------------
# Go (Tabs)
# ------------------------------------------------------------------------------
[*.go]
indent_style = tab

# ------------------------------------------------------------------------------
# Rust, C, C++, Java, C# (4 spaces)
# ------------------------------------------------------------------------------
[*.{rs,c,h,cpp,hpp,java,cs}]
indent_style = space
indent_size = 4

# ------------------------------------------------------------------------------
# Shell Scripts and Docker (2 spaces)
# ------------------------------------------------------------------------------
[*.{sh,bash}]
indent_style = space
indent_size = 2

[{Dockerfile,*.dockerfile}]
indent_style = space
indent_size = 2

# ------------------------------------------------------------------------------
# Makefiles (Must use tabs for indentation)
# ------------------------------------------------------------------------------
[{Makefile,*.mk}]
indent_style = tab

# ------------------------------------------------------------------------------
# Markdown Documents
# ------------------------------------------------------------------------------
[*.md]
# Markdown allows double spaces at the end of a line for hard line breaks.
trim_trailing_whitespace = false
indent_style = space
indent_size = 2
154 changes: 154 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# ==============================================================================
# Environment Configuration Template
# ==============================================================================
# INSTRUCTIONS:
# 1. Copy this file and rename it to `.env` (this file is ignored by git).
# 2. Replace the placeholder values with your actual local configuration.
# 3. DO NOT commit actual secrets (passwords, API keys) to version control.
# 4. Use meaningful defaults for development where safe.
# ==============================================================================

# ------------------------------------------------------------------------------
# Core Application Settings
# ------------------------------------------------------------------------------
# Application Environment (e.g., development, staging, production, testing)
APP_ENV=development
# Enable/disable debug mode (verbose logging, stack traces)
APP_DEBUG=true
APP_NAME="{{project_name}}"
APP_VERSION="1.0.0"
# Base URL for the application (useful for generating absolute links, emails)
APP_URL=http://localhost:8080
# Timezone context for the application
APP_TIMEZONE=UTC
# Default locale/language
APP_LOCALE=en

# ------------------------------------------------------------------------------
# Server / Network Configuration
# ------------------------------------------------------------------------------
# Port the application server listens on
PORT=8080
APP_PORT=8080
# Host to bind to (0.0.0.0 for all interfaces, useful in Docker environments)
HOST=0.0.0.0
# Allowed hosts/CORS origins (comma separated)
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080

# ------------------------------------------------------------------------------
# Database Configuration (Relational / SQL)
# ------------------------------------------------------------------------------
# Connection type (e.g., postgres, mysql, sqlite, mssql)
DB_CONNECTION=postgres
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE={{project_name}}_dev
DB_USERNAME=admin
DB_PASSWORD=secret
# Database schema (if applicable, e.g., public for postgres)
DB_SCHEMA=public
# Full connection string alternative (often used by ORMs like Prisma or SQLAlchemy)
# DATABASE_URL=postgres://admin:secret@localhost:5432/{{project_name}}_dev

# ------------------------------------------------------------------------------
# Cache / Key-Value Store / Message Brokers
# ------------------------------------------------------------------------------
# Redis configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=null
REDIS_DB=0
# REDIS_URL=redis://localhost:6379/0

# Memcached configuration
MEMCACHED_HOST=localhost
MEMCACHED_PORT=11211

# RabbitMQ / Celery / Message Queue
# RABBITMQ_URL=amqp://guest:guest@localhost:5672/

# ------------------------------------------------------------------------------
# Security & Authentication
# ------------------------------------------------------------------------------
# Application secret key (used for sessions, cookie signing, CSRF tokens)
APP_SECRET_KEY=your_super_secret_key_change_in_production
# JWT (JSON Web Token) configuration
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRES_IN=86400 # e.g., in seconds (1 day)
# OAuth / Single Sign-On (SSO) generic providers
OAUTH_CLIENT_ID=your_oauth_client_id
OAUTH_CLIENT_SECRET=your_oauth_client_secret

# ------------------------------------------------------------------------------
# Email / SMTP Configuration
# ------------------------------------------------------------------------------
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME="${APP_NAME}"

# ------------------------------------------------------------------------------
# Object Storage / Cloud Providers
# ------------------------------------------------------------------------------
# AWS S3 / MinIO configuration
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
# AWS_ENDPOINT=http://localhost:9000 # Uncomment for MinIO

# Google Cloud Platform
# GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
# GCP_PROJECT_ID=

# ------------------------------------------------------------------------------
# Observability / Logging / Telemetry
# ------------------------------------------------------------------------------
# Log level: debug, info, warn, error, fatal
LOG_LEVEL=debug
LOG_FORMAT=json # or text
# Sentry DSN for error tracking
# SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
# Datadog, Prometheus, NewRelic etc.
# DD_API_KEY=
# TELEMETRY_ENABLED=true

# ------------------------------------------------------------------------------
# Common Third-Party API Keys (Placeholders)
# ------------------------------------------------------------------------------
# Stripe / Payment Gateway
# STRIPE_PUBLIC_KEY=pk_test_...
# STRIPE_SECRET_KEY=sk_test_...
# STRIPE_WEBHOOK_SECRET=whsec_...

# AI / LLM APIs (OpenAI, Anthropic, etc.)
# OPENAI_API_KEY=sk-...
# ANTHROPIC_API_KEY=sk-ant-...

# ------------------------------------------------------------------------------
# Frontend / UI Specific Variables
# ------------------------------------------------------------------------------
# Note: Many frontend frameworks require specific prefixes to expose vars to the client.
# The below variables show how to map backend values to frontend framework standards.
# Next.js: NEXT_PUBLIC_
# Vite: VITE_
# Create React App: REACT_APP_
# Vue/Nuxt: NUXT_PUBLIC_ / VUE_APP_

NEXT_PUBLIC_APP_URL=${APP_URL}
NEXT_PUBLIC_API_URL=${APP_URL}/api/v1
VITE_API_BASE_URL=${APP_URL}/api/v1
REACT_APP_API_URL=${APP_URL}/api/v1

# ------------------------------------------------------------------------------
# CI/CD & Deployment Flags
# ------------------------------------------------------------------------------
# Flags to trigger specific build or deployment behaviors in GitHub Actions, GitLab CI, etc.
# CI=true
# SKIP_PREFLIGHT_CHECK=true
# DOCKER_BUILD_TARGET=development
64 changes: 64 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# =============================================================================
# CODEOWNERS — Automated Review Assignment
#
# GitHub uses this file to automatically request reviews from the designated
# code owners when a pull request modifies files matching a given pattern.
#
# HOW TO USE THIS FILE:
# 1. Replace all placeholder GitHub usernames (e.g., @org/team-name or
# @username) with your actual GitHub team or individual usernames.
# 2. Rules are evaluated from top to bottom. The LAST matching rule wins.
# 3. Patterns follow the same syntax as .gitignore.
#
# REFERENCE:
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# =============================================================================

# -----------------------------------------------------------------------------
# Default Owner
# Catches all files not matched by a more specific rule below.
# This team or user is the reviewer of last resort.
# -----------------------------------------------------------------------------
* @{{maintainer_username}}

# -----------------------------------------------------------------------------
# CI/CD & Infrastructure
# Requires review from a platform/infrastructure team for any workflow changes.
# -----------------------------------------------------------------------------
.github/ @{{maintainer_username}}
.github/workflows/ @{{maintainer_username}}

# -----------------------------------------------------------------------------
# Documentation
# Route docs changes to the team responsible for content quality.
# -----------------------------------------------------------------------------
docs/ @{{maintainer_username}}
*.md @{{maintainer_username}}
mkdocs.yml @{{maintainer_username}}

# -----------------------------------------------------------------------------
# Security-Sensitive Files
# Any change to security policy, secrets config, or dependencies must be
# reviewed by the security team.
# -----------------------------------------------------------------------------
SECURITY.md @{{maintainer_username}}
.github/dependabot.yml @{{maintainer_username}}
.pre-commit-config.yaml @{{maintainer_username}}

# -----------------------------------------------------------------------------
# Core Source Code
# Replace with the path to your primary package directory.
# -----------------------------------------------------------------------------
src/ @{{maintainer_username}}

# -----------------------------------------------------------------------------
# Tests
# Requires review from someone responsible for test quality and coverage.
# -----------------------------------------------------------------------------
tests/ @{{maintainer_username}}

# -----------------------------------------------------------------------------
# Container & Deployment
# -----------------------------------------------------------------------------
Dockerfile @{{maintainer_username}}
docker-compose.yml @{{maintainer_username}}
75 changes: 75 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: 🐛 Bug Report
description: Create a report to help us improve {{project_name}}
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report a bug to `{{project_name}}`!

> [!IMPORTANT]
> If you have found a **security vulnerability**, please refer to our [Security Policy](../SECURITY.md) and do not open a public issue.

For general help and Q&A, please use [GitHub Discussions](https://github.com/{{organization}}/{{project_name}}/discussions) instead.

- type: checkboxes
id: checks
attributes:
label: Search before asking
description: Please confirm that you have checked the following before submitting your bug report.
options:
- label: I have searched the [existing issues](https://github.com/{{organization}}/{{project_name}}/issues) and could not find a similar bug.
required: true
- label: I have read the [Official Documentation](https://{{organization}}.github.io/{{project_name}}).
required: true

- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: Tell us what happened...
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Provide a minimal, reproducible example or the exact steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen instead.
validations:
required: true

- type: textarea
id: environment
attributes:
label: Environment
description: Please provide details about your environment.
value: |
- OS (e.g., Linux, macOS, Windows):
- Language Version (e.g., Python 3.10):
- `{{project_name}}` Version:
- Other relevant dependency versions:
validations:
required: true

- type: textarea
id: logs
attributes:
label: Relevant Logs or Screenshots
description: If applicable, add screenshots or paste command output/logs to help explain your problem. Please use code blocks (```) to format logs.
validations:
required: false
Loading
Loading