Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
03b09dd
Initial commit from Create Next App
Alessag Aug 16, 2025
f6d291b
chore(config): setup eslint, prettier, husky and commitlint
Alessag Aug 17, 2025
001f90d
feat(layout): add responsive footer component
Alessag Aug 18, 2025
27c63c1
style(foter): add responsive styles
Alessag Aug 19, 2025
1eddc5e
chore(types): add ComunityResources type
Alessag Aug 19, 2025
c1ec43f
chore(data): add mocked community resources
Alessag Aug 19, 2025
80ca0d4
feat(community): add community resources component with cards
Alessag Aug 19, 2025
b77e390
chore(assets): remove default nextjs images
Alessag Aug 26, 2025
523deb8
chore(assets): add project images
Alessag Aug 26, 2025
8448cd2
feat(hero-slider): implement hero slider component
Alessag Aug 26, 2025
9a1e38c
chore(meta): add favicon and update title
Alessag Sep 5, 2025
c96ea9d
style(ui): update project font family
Alessag Sep 5, 2025
e6bb701
feat(community): add community social links and improve component
Alessag Sep 5, 2025
6c54117
feat(friends-community): implement friends community component with r…
Alessag Sep 5, 2025
a0d05c4
chore(links): update social media links
Alessag Sep 5, 2025
a6e353a
style(ui): apply general responsive styling changes in components
Alessag Sep 5, 2025
8f5ca69
chore(image): Update Sysarmy logo path
Alessag Sep 5, 2025
7440e11
chore(image): Prepare next config to fetch images from the sysarmy cl…
Alessag Sep 7, 2025
d0d99dc
chore(deps): add prettier-plugin-tailwindcss
Alessag Sep 7, 2025
f457774
style(ui): reorder tailwindcss classes via prettier
Alessag Sep 7, 2025
1891a53
feat(lareira): implement lareira conf component
Alessag Sep 7, 2025
d454359
feat(timeline): add timeline page with responsive design and mocked data
Alessag Oct 28, 2025
5b6c176
feat(header): add header to the timeline page
Alessag Nov 13, 2025
f59776b
feature(code-of-conduct): Add navigation and new page of Code of Conduct
Alessag Nov 17, 2025
564d78b
feat(seo): Improve metada info
Alessag Nov 17, 2025
9bddf5e
chore(docker): Dockerize the app
Alessag Nov 18, 2025
3b798de
chore: delete old project
Alessag Nov 18, 2025
2a83477
Merge remote-tracking branch 'y/main' into new-web
Alessag Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Dependencies
node_modules
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Local env files
.env.local
.env.development.local
.env.test.local
.env.production.local

# Next.js build output
.next
out

# Production build
dist
build

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Logs
logs
*.log

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# IDE
.vscode
.idea

# Git
.git
.gitignore

# Docker
Dockerfile*
docker-compose*
.dockerignore

# Testing
.jest

# Misc
README.md
.prettierrc
.eslintrc*
.commitlintrc*
.husky
28 changes: 23 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,39 @@
# dependencies
/node_modules
/.pnp
.pnp.js
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
2 changes: 2 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
yarn prettier
yarn lint
1 change: 1 addition & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
yarn build
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.husky
.next
node_modules
public
12 changes: 12 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"singleQuote": true,
"semi": true,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 120,
"endOfLine": "lf",
"plugins": ["@trivago/prettier-plugin-sort-imports", "prettier-plugin-tailwindcss"],
"importOrder": ["^components/(.*)$", "^[./]"],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true
}
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"cSpell.words": ["linkedin", "sysarmy", "Sysarmy", "tailwindcss"]
}
68 changes: 68 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Multi-stage build for Next.js production
FROM node:20-alpine AS base

# Install dependencies only when needed
FROM base AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
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 corepack enable pnpm && pnpm i --frozen-lockfile; \
else echo "Lockfile not found." && exit 1; \
fi

# Rebuild the source code only when needed
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .

# Next.js collects completely anonymous telemetry data about general usage.
# Learn more here: https://nextjs.org/telemetry
# Uncomment the following line in case you want to disable telemetry during the build.
ENV NEXT_TELEMETRY_DISABLED=1

RUN \
if [ -f yarn.lock ]; then yarn run build; \
elif [ -f package-lock.json ]; then npm run build; \
elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \
else echo "Lockfile not found." && exit 1; \
fi

# Production image, copy all the files and run next
FROM base AS runner
WORKDIR /app

ENV NODE_ENV=production
# Uncomment the following line in case you want to disable telemetry during runtime.
ENV NEXT_TELEMETRY_DISABLED=1

RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

COPY --from=builder /app/public ./public

# Set the correct permission for prerender cache
RUN mkdir .next
RUN chown nextjs:nodejs .next

# Automatically leverage output traces to reduce image size
# https://nextjs.org/docs/advanced-features/output-file-tracing
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
ENV HOSTNAME="0.0.0.0"

# server.js is created by next build from the standalone output
# https://nextjs.org/docs/pages/api-reference/next-config-js/output
CMD ["node", "server.js"]
78 changes: 22 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,36 @@
# Getting Started with Create React App
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Getting Started

## Available Scripts
First, run the development server:

In the project directory, you can run:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

### `yarn start`
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

The page will reload when you make changes.\
You may also see any lint errors in the console.

### `yarn test`

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `yarn build`

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `yarn eject`

**Note: this is a one-way operation. Once you `eject`, you can't go back!**

If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.

You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).

### Code Splitting

This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)

### Analyzing the Bundle Size

This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)

### Making a Progressive Web App

This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)

### Advanced Configuration
To learn more about Next.js, take a look at the following resources:

This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

### Deployment
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
## Deploy on Vercel

### `yarn build` fails to minify
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
22 changes: 22 additions & 0 deletions commitlint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import type { UserConfig } from '@commitlint/types';
import { RuleConfigSeverity } from '@commitlint/types';

const config: UserConfig = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
RuleConfigSeverity.Error,
'always',
['build', 'chore', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'style', 'test'],
],

'type-case': [RuleConfigSeverity.Error, 'always', 'lower-case'],
'scope-case': [RuleConfigSeverity.Error, 'always', 'lower-case'],
'subject-case': [RuleConfigSeverity.Error, 'always', 'lower-case'],
'subject-empty': [RuleConfigSeverity.Error, 'never'],
'subject-full-stop': [RuleConfigSeverity.Error, 'never', '.'],
'header-max-length': [RuleConfigSeverity.Error, 'always', 72],
},
};

export default config;
26 changes: 26 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
version: '3.8'

services:
sysarmy-galicia:
build:
context: .
dockerfile: Dockerfile
container_name: sysarmy-galicia-app
ports:
- '3000:3000'
environment:
- NODE_ENV=production
- NEXT_TELEMETRY_DISABLED=1
restart: unless-stopped
healthcheck:
test: ['CMD-SHELL', 'wget --no-verbose --tries=1 --spider http://localhost:3000 || exit 1']
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- sysarmy-network

networks:
sysarmy-network:
driver: bridge
21 changes: 21 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { FlatCompat } from '@eslint/eslintrc';
import { dirname } from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({ baseDirectory: __dirname });

const eslintConfig = [
...compat.config({
extends: ['next/core-web-vitals', 'next/typescript', 'next', 'prettier'],
rules: {
'@typescript/no-unused-expressions': 'off',
'no-console': 'error',
'no-unused-vars': 'error',
},
}),
];

export default eslintConfig;
15 changes: 15 additions & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import type { NextConfig } from 'next';

const nextConfig: NextConfig = {
output: 'standalone',
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'cloud.sysarmy.galicia.dev',
},
],
},
};

export default nextConfig;
Loading