Skip to content

Commit 4d01b6f

Browse files
committed
.github
1 parent c321624 commit 4d01b6f

10 files changed

Lines changed: 500 additions & 0 deletions

File tree

.github/CONTRIBUTING.md

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
# Contributing to CollectorGO
2+
3+
Thank you for your interest in contributing! This guide will help you get started.
4+
5+
## 📋 Table of Contents
6+
7+
- [Development Setup](#development-setup)
8+
- [Project Structure](#project-structure)
9+
- [Coding Standards](#coding-standards)
10+
- [Making Changes](#making-changes)
11+
- [Commit Messages](#commit-messages)
12+
13+
---
14+
15+
## Development Setup
16+
17+
### Prerequisites
18+
19+
- **Node.js 20+** — for Dashboard & Mobile App
20+
- **Python 3.12+** — for Backend
21+
- **uv** — Python package manager ([install](https://docs.astral.sh/uv/))
22+
- **PostgreSQL 16+** — database
23+
- **Expo CLI** — for mobile development
24+
25+
### Backend
26+
27+
```bash
28+
cd backend
29+
cp .env.example .env # configure your database URL
30+
uv sync --dev # install all dependencies
31+
uv run alembic upgrade head # run migrations
32+
uv run uvicorn app.main:app --reload
33+
```
34+
35+
### Dashboard
36+
37+
```bash
38+
cd dashboard
39+
npm install
40+
npm run dev
41+
```
42+
43+
### Mobile App
44+
45+
```bash
46+
cd app
47+
npm install
48+
npx expo start
49+
```
50+
51+
---
52+
53+
## Project Structure
54+
55+
```
56+
CollectorGO/
57+
├── app/ # React Native (Expo) mobile app
58+
├── backend/ # FastAPI backend
59+
├── dashboard/ # Next.js web dashboard
60+
└── docs/ # Documentation
61+
```
62+
63+
---
64+
65+
## Coding Standards
66+
67+
### Backend (Python)
68+
69+
- **Formatter:** Ruff (`ruff format`)
70+
- **Linter:** Ruff (`ruff check`)
71+
- **Type checker:** Mypy
72+
- **Tests:** Pytest
73+
74+
```bash
75+
cd backend
76+
uv run ruff check .
77+
uv run ruff format --check .
78+
uv run mypy app --ignore-missing-imports
79+
uv run pytest -v
80+
```
81+
82+
### Dashboard (TypeScript / Next.js)
83+
84+
- **Linter:** ESLint
85+
- **Framework:** Next.js with App Router
86+
- **Styling:** Tailwind CSS
87+
88+
```bash
89+
cd dashboard
90+
npm run lint
91+
npx tsc --noEmit
92+
npm run build
93+
```
94+
95+
### Mobile App (TypeScript / React Native)
96+
97+
- **Framework:** Expo SDK 54
98+
- **Navigation:** React Navigation
99+
100+
```bash
101+
cd app
102+
npx tsc --noEmit
103+
```
104+
105+
---
106+
107+
## Making Changes
108+
109+
1. **Fork** the repository and clone your fork
110+
2. **Create a branch** from `develop`:
111+
```bash
112+
git checkout -b feature/your-feature develop
113+
```
114+
3. **Make your changes** — follow the coding standards above
115+
4. **Test** your changes locally
116+
5. **Commit** using conventional commits (see below)
117+
6. **Push** your branch and open a **Pull Request** against `develop`
118+
119+
---
120+
121+
## Commit Messages
122+
123+
We follow [Conventional Commits](https://www.conventionalcommits.org/):
124+
125+
```
126+
<type>(<scope>): <description>
127+
128+
[optional body]
129+
```
130+
131+
### Types
132+
133+
| Type | Description |
134+
| ---------- | ------------------------------------ |
135+
| `feat` | A new feature |
136+
| `fix` | A bug fix |
137+
| `docs` | Documentation changes |
138+
| `style` | Code style (formatting, no logic) |
139+
| `refactor` | Code refactoring |
140+
| `test` | Adding or updating tests |
141+
| `chore` | Maintenance tasks |
142+
| `ci` | CI/CD configuration changes |
143+
144+
### Scopes
145+
146+
Use the component name: `backend`, `dashboard`, `app`, or `docs`.
147+
148+
### Examples
149+
150+
```
151+
feat(backend): add user role assignment endpoint
152+
fix(dashboard): resolve chart rendering on mobile viewports
153+
ci(backend): add PostgreSQL service to test workflow
154+
```
155+
156+
---
157+
158+
Thank you for contributing! 🚀

.github/FUNDING.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Uncomment and configure when sponsorship is set up
2+
# github: [your-username]
3+
# ko_fi: your-username
4+
# custom: ["https://your-link.com"]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: 🐛 Bug Report
3+
about: Report a bug to help us improve CollectorGO
4+
title: "[Bug] "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Describe the Bug
10+
11+
<!-- A clear and concise description of what the bug is. -->
12+
13+
## Steps to Reproduce
14+
15+
1. Go to '...'
16+
2. Click on '...'
17+
3. Scroll down to '...'
18+
4. See error
19+
20+
## Expected Behavior
21+
22+
<!-- What you expected to happen. -->
23+
24+
## Actual Behavior
25+
26+
<!-- What actually happened. Include error messages or logs if available. -->
27+
28+
## Screenshots
29+
30+
<!-- If applicable, add screenshots to help explain. -->
31+
32+
## Environment
33+
34+
- **Component:** Backend / Dashboard / Mobile App
35+
- **OS:** [e.g. Windows 11, macOS 15, Android 15, iOS 18]
36+
- **Browser (if dashboard):** [e.g. Chrome 130, Safari 18]
37+
- **App Version:** [e.g. 1.0.0]
38+
39+
## Additional Context
40+
41+
<!-- Any other context about the problem here. -->

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 💬 Questions & Discussions
4+
url: https://github.com/RanbeerReddy/CollectorGO/discussions
5+
about: Ask questions and discuss ideas in GitHub Discussions
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
name: ✨ Feature Request
3+
about: Suggest a new feature or improvement for CollectorGO
4+
title: "[Feature] "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Problem Statement
10+
11+
<!-- Describe the problem or pain point this feature would solve. -->
12+
13+
## Proposed Solution
14+
15+
<!-- Describe the solution you'd like. Be as specific as possible. -->
16+
17+
## Alternatives Considered
18+
19+
<!-- Have you considered any alternative solutions or workarounds? -->
20+
21+
## Component(s)
22+
23+
- [ ] Backend (`/backend`)
24+
- [ ] Dashboard (`/dashboard`)
25+
- [ ] Mobile App (`/app`)
26+
- [ ] Other
27+
28+
## Additional Context
29+
30+
<!-- Add any mockups, screenshots, or references that help explain the feature. -->

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## Description
2+
3+
<!-- Provide a brief summary of the changes. -->
4+
5+
## Related Issue
6+
7+
<!-- Link the issue this PR addresses, e.g. Closes #123 -->
8+
9+
## Type of Change
10+
11+
- [ ] 🐛 Bug fix (non-breaking change that fixes an issue)
12+
- [ ] ✨ New feature (non-breaking change that adds functionality)
13+
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
14+
- [ ] 📝 Documentation update
15+
- [ ] 🔧 Refactor / chore (no feature or bug fix)
16+
17+
## Component(s) Affected
18+
19+
- [ ] Backend (`/backend`)
20+
- [ ] Dashboard (`/dashboard`)
21+
- [ ] Mobile App (`/app`)
22+
- [ ] Docs / Config
23+
24+
## Checklist
25+
26+
- [ ] My code follows the project style guidelines
27+
- [ ] I have performed a self-review of my code
28+
- [ ] I have added/updated tests that prove my fix or feature works
29+
- [ ] New and existing tests pass locally
30+
- [ ] I have updated documentation where applicable
31+
32+
## Screenshots / Recordings
33+
34+
<!-- If applicable, add screenshots or screen recordings to help explain the change. -->

.github/dependabot.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
version: 2
2+
3+
updates:
4+
# Backend — Python (pip/uv)
5+
- package-ecosystem: "pip"
6+
directory: "/backend"
7+
schedule:
8+
interval: "weekly"
9+
day: "monday"
10+
labels:
11+
- "dependencies"
12+
- "backend"
13+
commit-message:
14+
prefix: "chore(backend)"
15+
open-pull-requests-limit: 10
16+
17+
# Dashboard — npm
18+
- package-ecosystem: "npm"
19+
directory: "/dashboard"
20+
schedule:
21+
interval: "weekly"
22+
day: "monday"
23+
labels:
24+
- "dependencies"
25+
- "dashboard"
26+
commit-message:
27+
prefix: "chore(dashboard)"
28+
open-pull-requests-limit: 10
29+
30+
# Mobile App — npm
31+
- package-ecosystem: "npm"
32+
directory: "/app"
33+
schedule:
34+
interval: "weekly"
35+
day: "monday"
36+
labels:
37+
- "dependencies"
38+
- "mobile"
39+
commit-message:
40+
prefix: "chore(app)"
41+
open-pull-requests-limit: 10
42+
43+
# GitHub Actions
44+
- package-ecosystem: "github-actions"
45+
directory: "/"
46+
schedule:
47+
interval: "weekly"
48+
day: "monday"
49+
labels:
50+
- "dependencies"
51+
- "ci"
52+
commit-message:
53+
prefix: "ci"
54+
open-pull-requests-limit: 5

0 commit comments

Comments
 (0)