-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
4,555 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
.env | ||
Dockerfile | ||
.dockerignore | ||
node_modules | ||
npm-debug.log | ||
README.md | ||
.next | ||
.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
{ | ||
"parser": "@typescript-eslint/parser", | ||
"parserOptions": { | ||
"project": true | ||
}, | ||
"plugins": ["@typescript-eslint", "tailwindcss"], | ||
"extends": [ | ||
"next/core-web-vitals", | ||
"prettier", | ||
"plugin:@typescript-eslint/recommended-type-checked", | ||
"plugin:tailwindcss/recommended" | ||
], | ||
"rules": { | ||
"@typescript-eslint/array-type": "off", | ||
"@typescript-eslint/consistent-type-definitions": "off", | ||
"@typescript-eslint/consistent-type-imports": [ | ||
"warn", | ||
{ | ||
"prefer": "type-imports", | ||
"fixStyle": "inline-type-imports" | ||
} | ||
], | ||
"@typescript-eslint/no-unused-vars": [ | ||
"warn", | ||
{ "argsIgnorePattern": "^_" } | ||
], | ||
"@typescript-eslint/no-misused-promises": [ | ||
2, | ||
{ | ||
"checksVoidReturn": { "attributes": false } | ||
} | ||
] | ||
}, | ||
"settings": { | ||
"tailwindcss": { | ||
"callees": ["cn", "cva"], | ||
"config": "./tailwind.config.ts", | ||
"classRegex": "^(class(Name)?|tw)$" | ||
}, | ||
"next": { | ||
"rootDir": ["./"] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
name: code checks | ||
|
||
on: | ||
pull-request: | ||
branches: ["*"] | ||
push: | ||
branches: ["main"] | ||
|
||
jobs: | ||
lint: | ||
name: lint | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: install node js | ||
uses: actions/setup-node@v4 | ||
with: | ||
version: 20 | ||
|
||
- name: setup pnpm | ||
id: pnpm-install | ||
uses: pnpm/[email protected] | ||
with: | ||
version: 8 | ||
run_install: false | ||
|
||
- name: get pnpm store directory | ||
id: pnpm-cache | ||
run: | | ||
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: install dependencies | ||
run: pnpm install | ||
|
||
- run: cp .env.example .env | ||
|
||
- run: pnpm lint | ||
|
||
format: | ||
name: format | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: install node js | ||
uses: actions/setup-node@v4 | ||
with: | ||
version: 20 | ||
|
||
- name: setup pnpm | ||
id: pnpm-install | ||
uses: pnpm/[email protected] | ||
with: | ||
version: 8 | ||
run-install: false | ||
|
||
- name: get pnpm store directory | ||
id: pnpm-cache | ||
run: | | ||
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: install dependencies | ||
run: pnpm install | ||
|
||
- run: cp .env.example .env | ||
|
||
- run: pnpm format:check | ||
|
||
typecheck: | ||
name: typecheck | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: install node | ||
uses: actions/setup-node@v4 | ||
with: | ||
version: 20 | ||
|
||
- name: setup pnpm | ||
id: pnpm-install | ||
uses: pnpm/[email protected] | ||
with: | ||
version: 8 | ||
run_install: false | ||
|
||
- name: get pnpm store directory | ||
id: pnpm-cache | ||
run: | | ||
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: install dependencies | ||
run: pnpm install | ||
|
||
- run: cp .env.example .env | ||
|
||
- run: pnpm typecheck |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
/node_modules | ||
/.pnp | ||
.pnp.js | ||
.yarn/install-state.gz | ||
|
||
# testing | ||
/coverage | ||
|
||
# next.js | ||
/.next/ | ||
/out/ | ||
|
||
# production | ||
/build | ||
|
||
# misc | ||
.DS_Store | ||
*.pem | ||
|
||
# debug | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# local env files | ||
.env*.local | ||
|
||
# vercel | ||
.vercel | ||
|
||
# typescript | ||
*.tsbuildinfo | ||
next-env.d.ts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
.node_modules | ||
.next | ||
.build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
{ | ||
"endOfLine": "lf", | ||
"semi": false, | ||
"trailingComma": "es5", | ||
"singleQuote": false, | ||
"tabWidth": 2, | ||
"importOrder": [ | ||
"^(react/(.*)$)|^(react$)", | ||
"^(next/(.*)$)|^(next$)", | ||
"<THIRD_PARTY_MODULES>", | ||
"", | ||
"^types$", | ||
"^@/types/(.*)$", | ||
"^@/config/(.*)$", | ||
"^@/lib/(.*)$", | ||
"^@/hooks/(.*)$", | ||
"^@/components/ui/(.*)$", | ||
"^@/components/(.*)$", | ||
"^@/styles/(.*)$", | ||
"^@/app/(.*)$", | ||
"", | ||
"^[./]" | ||
], | ||
"importOrderSeparation": false, | ||
"importOrderSpecifiers": true, | ||
"importOrderBuiltinModulesToTop": true, | ||
"importOrderParsePlugins": ["typescript", "jsx", "decorators-legacy"], | ||
"importOrderMergeDuplicateImports": true, | ||
"importOrderCombineTypeAndValueImports": true, | ||
"tailwindAttributes": ["tw"], | ||
"tailwindFunctions": ["cva"], | ||
"plugins": [ | ||
"@ianvs/prettier-plugin-sort-imports", | ||
"prettier-plugin-tailwindcss" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
##### DEPENDENCIES | ||
|
||
FROM --platform=linux/amd64 node:20-alpine AS deps | ||
RUN apk add --no-cache libc6-compat openssl | ||
WORKDIR /app | ||
|
||
# Install dependencies based on the preferred package manager | ||
|
||
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml\* ./ | ||
|
||
RUN \ | ||
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \ | ||
elif [ -f package-lock.json ]; then npm ci; \ | ||
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i; \ | ||
else echo "Lockfile not found." && exit 1; \ | ||
fi | ||
|
||
##### BUILDER | ||
|
||
FROM node:20-alpine AS builder | ||
ARG NEXT_PUBLIC_CLIENTVAR | ||
WORKDIR /app | ||
COPY --from=deps /app/node_modules ./node_modules | ||
COPY . . | ||
|
||
# ENV NEXT_TELEMETRY_DISABLED 1 | ||
|
||
RUN \ | ||
if [ -f yarn.lock ]; then SKIP_ENV_VALIDATION=1 yarn build; \ | ||
elif [ -f package-lock.json ]; then SKIP_ENV_VALIDATION=1 npm run build; \ | ||
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && SKIP_ENV_VALIDATION=1 pnpm run build; \ | ||
else echo "Lockfile not found." && exit 1; \ | ||
fi | ||
|
||
##### RUNNER | ||
|
||
FROM node:20-alpine AS runner | ||
WORKDIR /app | ||
|
||
ENV NODE_ENV production | ||
|
||
# ENV NEXT_TELEMETRY_DISABLED 1 | ||
|
||
COPY --from=builder /app/next.config.mjs ./ | ||
COPY --from=builder /app/public ./public | ||
COPY --from=builder /app/package.json ./package.json | ||
|
||
COPY --from=builder /app/.next/standalone ./ | ||
COPY --from=builder /app/.next/static ./.next/static | ||
|
||
EXPOSE 3000 | ||
ENV PORT 3000 | ||
|
||
CMD ["server.js"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Byte | ||
|
||
A platform for developers to plan and manage virtual workshops | ||
|
||
## Tech stack | ||
|
||
- **Frontend:** Typescript, [Next.js](https://nextjs.org/), [Tailwindcss](https://tailwindcss.com) | ||
- **Backend:** Nextjs server actions and [Drizzle ORM](https://orm.drizzle.team) to manage database interaction | ||
- **Database:** Postgres | ||
- **Auth:** [Clerk](https://clerk.com) | ||
- **DevOps:** Docker and Github actions to automate workflows | ||
|
||
## Roadmap | ||
|
||
- [ ] Deploy | ||
- [ ] Setup home page | ||
- [ ] Add auth with clerk | ||
and more | ||
|
||
## Running locally | ||
|
||
1. Clone the repository | ||
|
||
```bash | ||
git clone https://github.com/Raphico/byte.git | ||
cd byte | ||
``` | ||
|
||
2. Start the application | ||
|
||
```bash | ||
docker-compose up --build | ||
``` | ||
|
||
## License | ||
|
||
Licensed under the MIT license. Check the [LICENSE](./LICENSE.md) file for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
version: "3.9" | ||
services: | ||
app: | ||
platform: "linux/amd64" | ||
build: | ||
context: . | ||
dockerfile: Dockerfile | ||
args: | ||
NEXT_PUBLIC_CLIENTVAR: "clientvar" | ||
working_dir: /app | ||
ports: | ||
- "3000:3000" | ||
image: byte | ||
environment: | ||
- DATABASE_URL=postgresql://postgres:postgres@db:5432/byte | ||
|
||
db: | ||
image: postgres | ||
restart: always | ||
environment: | ||
- POSTGRES_USER=postgres | ||
- POSTGRES_PASSWORD=postgres | ||
- POSTGRES_DB=byte | ||
ports: | ||
- "5432:5432" | ||
volumes: | ||
- byte_data:/var/lib/postgresql/data | ||
|
||
volumes: | ||
byte_data: |
Oops, something went wrong.