Skip to content

Commit 5a68902

Browse files
authored
[Closes #1] Initial stack setup
* Import files * Remove deployment related code/docs/dependencies * Tweaks to ensure runs on first launch * Update prisma * Ran npm audit fix * Starting replacement of bootstrap with mantine * Tweak header, remove sass * Restyle login from bootstrap to mantine * More bootstrap to mantine conversions * Fix reset password link bug and layout * More bootstrap to mantine conversion * Convert admin users list to mantine * Convert Invite form to mantine * Invite landing converted to mantine * Lazy load admin routes * Define supporting services in github action * Replace browser confirm with mantine modals * Create an Admin menu * Fix test * Fix s3 getObject helper * Separate Invites management from Users management * Update server dependencies * Fix Zod OpenAPI due to v4 to v5 breaking change * Configure nodemailer mock without quibble * Rename network * Fix test helper for new network name * Update client devDependencies * Ran npm audit fix * Updated client dependencies * Upgrade react * First pass, replacement of react-helmet-async * SSR with unhead * More react-query conversion * Lint fixes * npm audit fix on server * npm audit fix on client * Update server dependencies * Update client dependencies * Update more dependencies * Refactor response pagination handling * More tanstack refactor * More react-query refactor
1 parent f999911 commit 5a68902

File tree

120 files changed

+23703
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+23703
-0
lines changed

.dockerignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
**/.env
2+
**/.git
3+
**/node_modules
4+
**/*.dump
5+
.github
6+
client/dist

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* -text

.github/workflows/ci.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: CI
2+
on:
3+
push:
4+
branches:
5+
- "dev"
6+
- "main"
7+
pull_request:
8+
types: [opened, reopened, synchronize]
9+
10+
jobs:
11+
test:
12+
name: Test
13+
runs-on: ubuntu-latest
14+
container: node:22.19.0-bookworm
15+
services:
16+
db:
17+
image: postgres:17.6
18+
minio:
19+
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
20+
steps:
21+
- name: Check out repository code
22+
uses: actions/checkout@v4
23+
- name: Set up npm cache
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: 22
27+
cache: 'npm'
28+
- name: Install Dependencies
29+
run: npm ci
30+
- name: Generate Prisma client
31+
run: cd server && npx prisma generate
32+
- name: Run ESLint
33+
run: npm run lint
34+
- name: Run Tests
35+
run: cp server/example.env server/.env && npm test

.gitignore

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
6+
# Runtime data
7+
pids
8+
*.pid
9+
*.seed
10+
11+
# Directory for instrumented libs generated by jscoverage/JSCover
12+
lib-cov
13+
14+
# Coverage directory used by tools like istanbul
15+
coverage
16+
17+
# nyc test coverage
18+
.nyc_output
19+
20+
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
21+
.grunt
22+
23+
# node-waf configuration
24+
.lock-wscript
25+
26+
# Compiled binary addons (http://nodejs.org/api/addons.html)
27+
build/Release
28+
29+
# Dependency directories
30+
node_modules
31+
jspm_packages
32+
33+
# Optional npm cache directory
34+
.npm
35+
36+
# Optional REPL history
37+
.node_repl_history
38+
39+
# 0x
40+
profile-*
41+
42+
# mac files
43+
.DS_Store
44+
45+
# vim swap files
46+
*.swp
47+
48+
# webstorm
49+
.idea
50+
51+
# vscode
52+
.vscode
53+
*code-workspace
54+
55+
# clinic
56+
profile*
57+
*clinic*
58+
*flamegraph*
59+
60+
# project specific
61+
.env
62+
data
63+
*.pem
64+
*.zip

Dockerfile

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
FROM node:22.19.0-bookworm
2+
3+
# Support for multi-architecture builds
4+
ARG TARGETARCH
5+
6+
# Set an env variable for the location of the app files
7+
ENV APP_HOME=/opt/node/app
8+
9+
# Install postgres dependencies
10+
RUN apt update -y && \
11+
apt install -y curl ca-certificates && \
12+
install -d /usr/share/postgresql-common/pgdg && \
13+
curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \
14+
sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list' && \
15+
apt update -y && \
16+
apt install -y postgresql-client-17 && \
17+
apt clean
18+
19+
# update path to include any installed node module executables
20+
RUN echo "export PATH=./node_modules/.bin:\$PATH\n" >> /root/.bashrc
21+
22+
# Create a directory for the server app to run from
23+
RUN mkdir -p $APP_HOME
24+
25+
# Add the project files into the app directory and set as working directory
26+
ADD . $APP_HOME
27+
WORKDIR $APP_HOME
28+
29+
# Install dependencies, build client app, generate server prisma client
30+
RUN npm install && \
31+
npm run build -w client && \
32+
npm run prisma:generate -w server
33+
34+
# Set up default command
35+
CMD ["./node_modules/.bin/pm2-runtime", "npm", "--", "start", "-w", "server"]

0 commit comments

Comments
 (0)