[SOMA][BOT-3][INFRA] skeleton: project folder structure and all package manifests

This commit is contained in:
Ramakrishna Mamidi
2026-03-23 01:13:11 +05:30
parent 00e314eb89
commit f857845dd2
18 changed files with 1024 additions and 0 deletions

33
soma/frontend/Dockerfile Normal file
View File

@@ -0,0 +1,33 @@
# Stage 1: Dependencies
FROM node:20-alpine AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci --only=production
# Stage 2: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
ENV NEXT_TELEMETRY_DISABLED 1
RUN npm run build
# Stage 3: Runner
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV production
ENV NEXT_TELEMETRY_DISABLED 1
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["node", "server.js"]

View File

@@ -0,0 +1,56 @@
{
"name": "soma-frontend",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"type-check": "tsc --noEmit"
},
"dependencies": {
"next": "14.2.0",
"react": "^18.3.0",
"react-dom": "^18.3.0",
"next-auth": "5.0.0-beta",
"next-pwa": "5.6.0",
"@tanstack/react-query": "5.0.0",
"zustand": "4.5.0",
"framer-motion": "11.0.0",
"react-hot-toast": "2.4.0",
"@dnd-kit/core": "^6.1.0",
"@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@tiptap/react": "^2.4.0",
"@tiptap/starter-kit": "^2.4.0",
"@tiptap/extension-placeholder": "^2.4.0",
"eventsource-parser": "^1.1.2",
"date-fns": "^3.6.0",
"lucide-react": "^0.400.0",
"clsx": "^2.1.1",
"tailwind-merge": "^2.3.0",
"class-variance-authority": "^0.7.0",
"@radix-ui/react-dialog": "^1.1.0",
"@radix-ui/react-dropdown-menu": "^2.1.0",
"@radix-ui/react-select": "^2.1.0",
"@radix-ui/react-sheet": "^1.0.0",
"@radix-ui/react-tabs": "^1.1.0",
"@radix-ui/react-toast": "^1.2.0",
"@radix-ui/react-tooltip": "^1.1.0",
"@radix-ui/react-progress": "^1.1.0",
"@radix-ui/react-skeleton": "^1.0.0"
},
"devDependencies": {
"typescript": "5.4.0",
"@types/node": "^20.0.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"tailwindcss": "3.4.0",
"postcss": "^8.4.38",
"autoprefixer": "^10.4.19",
"@tailwindcss/typography": "^0.5.13",
"eslint": "^8.57.0",
"eslint-config-next": "14.2.0"
}
}