Skip to content

Commit df68daa

Browse files
committed
chore: prepare server repo for open source contributions
1 parent e7e22ff commit df68daa

21 files changed

Lines changed: 7063 additions & 38 deletions

.env.example

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
PORT=3000
2+
MODE=development
3+
BACKEND_URL=http://localhost:3000
4+
FRONTEND_URL=http://localhost:5173
5+
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/accesslayer
6+
7+
GOOGLE_CLIENT_ID=
8+
GOOGLE_CLIENT_SECRET=
9+
GOOGLE_REDIRECT_URI=http://localhost:3000/api/v1/admin/auth/google/callback
10+
11+
GMAIL_USER=
12+
GMAIL_APP_PASSWORD=
13+
14+
CLOUDINARY_CLOUD_NAME=
15+
CLOUDINARY_API_KEY=
16+
CLOUDINARY_API_SECRET=
17+
18+
PAYSTACK_SECRET_KEY=
19+
PAYSTACK_PUBLIC_KEY=
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Bug report
2+
description: Report a backend or API bug in Access Layer server.
3+
title: '[Bug]: '
4+
labels:
5+
- bug
6+
body:
7+
- type: dropdown
8+
id: area
9+
attributes:
10+
label: Area
11+
options:
12+
- API and routing
13+
- auth and sessions
14+
- indexing and background logic
15+
- data layer and Prisma
16+
- observability and developer experience
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: summary
21+
attributes:
22+
label: Summary
23+
description: Describe the bug and the expected behavior.
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: reproduction
28+
attributes:
29+
label: Reproduction
30+
description: Include request, payload, environment, and logs when relevant.
31+
validations:
32+
required: true
33+
- type: textarea
34+
id: impact
35+
attributes:
36+
label: Impact
37+
description: Explain who is affected and whether this blocks contributors or users.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Contribution Guide
4+
url: https://github.com/accesslayerorg/accesslayer-server/blob/main/CONTRIBUTING.md
5+
about: Read the backend setup, verification commands, and PR workflow.
6+
- name: Issue Backlog
7+
url: https://github.com/accesslayerorg/accesslayer-server/blob/main/docs/open-source/issue-backlog.md
8+
about: Browse the server sections and scoped maintainer-ready issue inventory.
9+
- name: Security Policy
10+
url: https://github.com/accesslayerorg/accesslayer-server/blob/main/SECURITY.md
11+
about: Report security issues privately instead of opening public tickets.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Documentation update
2+
description: Improve server docs, setup, or maintainer guidance.
3+
title: '[Docs]: '
4+
labels:
5+
- documentation
6+
body:
7+
- type: dropdown
8+
id: doc_area
9+
attributes:
10+
label: Documentation area
11+
options:
12+
- README
13+
- CONTRIBUTING guide
14+
- env and setup docs
15+
- issue backlog
16+
- API or architecture notes
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: problem
21+
attributes:
22+
label: What is missing or unclear?
23+
validations:
24+
required: true
25+
- type: textarea
26+
id: proposal
27+
attributes:
28+
label: Proposed improvement
29+
validations:
30+
required: true

.github/ISSUE_TEMPLATE/task.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Maintainer task
2+
description: Create a scoped contributor task for the Access Layer server.
3+
title: '[Task]: '
4+
labels:
5+
- help wanted
6+
body:
7+
- type: dropdown
8+
id: section
9+
attributes:
10+
label: Section
11+
options:
12+
- Core API and data model
13+
- Indexing, ownership, and gated access
14+
- Platform, observability, and contributor experience
15+
validations:
16+
required: true
17+
- type: input
18+
id: outcome
19+
attributes:
20+
label: Desired outcome
21+
validations:
22+
required: true
23+
- type: textarea
24+
id: scope
25+
attributes:
26+
label: Scope
27+
validations:
28+
required: true
29+
- type: textarea
30+
id: acceptance
31+
attributes:
32+
label: Acceptance criteria
33+
placeholder: |
34+
- ...
35+
- ...
36+
- ...
37+
validations:
38+
required: true
39+
- type: dropdown
40+
id: difficulty
41+
attributes:
42+
label: Difficulty
43+
options:
44+
- good first issue
45+
- intermediate
46+
- advanced
47+
validations:
48+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## Summary
2+
3+
-
4+
5+
## Testing
6+
7+
- [ ] `pnpm lint`
8+
- [ ] `pnpm build`
9+
- [ ] `pnpm exec prisma generate` when schema or generated types changed
10+
11+
## Checklist
12+
13+
- [ ] Linked issue or backlog item
14+
- [ ] No secrets or live credentials added
15+
- [ ] Docs updated if setup or env changed
16+
- [ ] Change is scoped to one problem

.github/workflows/ci.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Server CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
9+
jobs:
10+
verify:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
17+
- name: Setup pnpm
18+
uses: pnpm/action-setup@v4
19+
with:
20+
version: 10.6.5
21+
22+
- name: Setup Node.js
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: 20
26+
cache: pnpm
27+
28+
- name: Install dependencies
29+
run: pnpm install --frozen-lockfile
30+
31+
- name: Generate Prisma client
32+
run: pnpm exec prisma generate
33+
34+
- name: Lint
35+
run: pnpm lint
36+
37+
- name: Build
38+
run: pnpm build

.husky/pre-commit

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/usr/bin/env sh
2+
pnpm lint-staged

CODE_OF_CONDUCT.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Access Layer Code of Conduct
2+
3+
We want Access Layer to be welcoming to contributors of different backgrounds and experience levels.
4+
5+
## Expected behavior
6+
7+
- Be respectful and constructive in issues, pull requests, and reviews.
8+
- Assume good intent, but communicate clearly and directly.
9+
- Focus criticism on code, decisions, and outcomes, not people.
10+
- Help keep issues scoped so contributors can make progress.
11+
12+
## Unacceptable behavior
13+
14+
- Harassment, discrimination, or personal attacks
15+
- Doxxing or sharing private information without consent
16+
- Repeated disruptive behavior after feedback from maintainers
17+
- Bad-faith reviews, trolling, or deliberate derailment
18+
19+
## Enforcement
20+
21+
Maintainers may edit, lock, hide, or remove comments and contributions that violate these rules. Repeated or severe violations may lead to temporary or permanent removal from the project spaces.
22+
23+
## Reporting
24+
25+
For conduct concerns, contact the maintainers privately rather than escalating in public threads.

CONTRIBUTING.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Contributing to Access Layer Server
2+
3+
Thanks for contributing to the backend for Access Layer, a Stellar-native creator keys marketplace.
4+
5+
## Before you start
6+
7+
- Read the [README](./README.md) for context.
8+
- Review the scoped backlog in [docs/open-source/issue-backlog.md](./docs/open-source/issue-backlog.md).
9+
- Keep pull requests limited to one backend issue or one documentation improvement.
10+
- Open a discussion before changing core API shape or background processing architecture.
11+
12+
## Local setup
13+
14+
1. Install Node.js 20+ and `pnpm`.
15+
2. Copy `.env.example` to `.env`.
16+
3. Install dependencies:
17+
18+
```bash
19+
pnpm install
20+
```
21+
22+
4. Generate Prisma client:
23+
24+
```bash
25+
pnpm exec prisma generate
26+
```
27+
28+
5. Start the dev server:
29+
30+
```bash
31+
pnpm dev
32+
```
33+
34+
## Verification commands
35+
36+
```bash
37+
pnpm lint
38+
pnpm build
39+
```
40+
41+
Run `pnpm exec prisma generate` again whenever Prisma schema changes.
42+
43+
## Backend contribution rules
44+
45+
- Do not commit secrets, service accounts, or live credentials.
46+
- Use `.env.example` for safe placeholders only.
47+
- Keep API contracts explicit and documented.
48+
- Prefer clear domain names tied to Access Layer, not legacy template modules.
49+
- Add validation and error-handling behavior when introducing new endpoints.
50+
51+
## Good first issue guidance
52+
53+
Good first issues in this repo should:
54+
55+
- avoid production credentials or third-party account dependencies
56+
- have a narrow API or documentation scope
57+
- include acceptance criteria and test instructions
58+
- avoid broad data model refactors
59+
60+
## Questions
61+
62+
If repo boundaries are unclear, confirm whether the work belongs in the client, server, or contracts repository before starting implementation.

0 commit comments

Comments
 (0)