Compare commits

1 Commits

Author SHA1 Message Date
Renovate-Clanker ae657e72f8 chore(deps): update actions/checkout action to v6 2026-03-01 06:27:31 +00:00
5 changed files with 370 additions and 365 deletions
+3 -3
View File
@@ -15,7 +15,7 @@ jobs:
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4 uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub - name: Log in to Docker Hub
uses: docker/login-action@v3 uses: docker/login-action@v3
@@ -25,7 +25,7 @@ jobs:
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image for main - name: Build and push Docker image for main
uses: docker/build-push-action@v7 uses: docker/build-push-action@v6
with: with:
context: . context: .
push: true push: true
@@ -35,7 +35,7 @@ jobs:
if: github.ref == 'refs/heads/main' if: github.ref == 'refs/heads/main'
- name: Build and push Docker image for staging - name: Build and push Docker image for staging
uses: docker/build-push-action@v7 uses: docker/build-push-action@v6
with: with:
context: . context: .
push: true push: true
+4 -4
View File
@@ -1,20 +1,20 @@
FROM node:24-alpine AS development-dependencies-env FROM node:20-alpine AS development-dependencies-env
COPY . /app COPY . /app
WORKDIR /app WORKDIR /app
RUN npm ci RUN npm ci
FROM node:24-alpine AS production-dependencies-env FROM node:20-alpine AS production-dependencies-env
COPY ./package.json package-lock.json /app/ COPY ./package.json package-lock.json /app/
WORKDIR /app WORKDIR /app
RUN npm ci --omit=dev RUN npm ci --omit=dev
FROM node:24-alpine AS build-env FROM node:20-alpine AS build-env
COPY . /app/ COPY . /app/
COPY --from=development-dependencies-env /app/node_modules /app/node_modules COPY --from=development-dependencies-env /app/node_modules /app/node_modules
WORKDIR /app WORKDIR /app
RUN npm run build RUN npm run build
FROM node:24-alpine FROM node:20-alpine
COPY ./package.json package-lock.json /app/ COPY ./package.json package-lock.json /app/
COPY --from=production-dependencies-env /app/node_modules /app/node_modules COPY --from=production-dependencies-env /app/node_modules /app/node_modules
COPY --from=build-env /app/build /app/build COPY --from=build-env /app/build /app/build
+54 -27
View File
@@ -140,31 +140,6 @@ export default function Index() {
<div className="container mx-auto max-w-4xl"> <div className="container mx-auto max-w-4xl">
<h2 className="mb-12 text-3xl font-bold text-center text-slate-900 dark:text-slate-100">Experience</h2> <h2 className="mb-12 text-3xl font-bold text-center text-slate-900 dark:text-slate-100">Experience</h2>
<div className="rounded-lg border border-slate-200 bg-white text-slate-950 shadow-sm dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50 mb-6">
<div className="flex flex-col space-y-1.5 p-6">
<div className="flex items-start justify-between">
<div className="flex items-center gap-4">
<div className="p-2 bg-slate-900/10 dark:bg-slate-50/10 rounded-lg">
<Briefcase className="h-6 w-6 text-slate-900 dark:text-slate-50" />
</div>
<div>
<h3 className="text-2xl font-semibold leading-none tracking-tight">Member of Web Development SIG</h3>
<p className="text-sm text-slate-600 dark:text-slate-400 text-base">RISTEK Fakultas Ilmu Komputer</p>
</div>
</div>
<span className="inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300 text-slate-600 dark:text-slate-400 bg-slate-100 dark:bg-slate-800">
Present
</span>
</div>
</div>
<div className="p-6 pt-0">
<div className="flex items-center gap-2 text-sm text-slate-600 dark:text-slate-400 mb-4">
<Calendar className="h-4 w-4" />
<span>March 2026 - Present</span>
</div>
</div>
</div>
<div className="rounded-lg border border-slate-200 bg-white text-slate-950 shadow-sm dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50 mb-6"> <div className="rounded-lg border border-slate-200 bg-white text-slate-950 shadow-sm dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50 mb-6">
<div className="flex flex-col space-y-1.5 p-6"> <div className="flex flex-col space-y-1.5 p-6">
<div className="flex items-start justify-between"> <div className="flex items-start justify-between">
@@ -174,7 +149,7 @@ export default function Index() {
</div> </div>
<div> <div>
<h3 className="text-2xl font-semibold leading-none tracking-tight">Back-end Developer Intern</h3> <h3 className="text-2xl font-semibold leading-none tracking-tight">Back-end Developer Intern</h3>
<p className="text-sm text-slate-600 dark:text-slate-400 text-base">PT Indonesia Indicator (a subsidiary of PT Ebdesk)</p> <p className="text-sm text-slate-600 dark:text-slate-400 text-base">PT eBdesk Teknologi</p>
</div> </div>
</div> </div>
<span className="inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300 text-slate-950 dark:text-slate-50"> <span className="inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300 text-slate-950 dark:text-slate-50">
@@ -393,7 +368,59 @@ export default function Index() {
</div> </div>
</div> </div>
<div>
<h3 className="mb-8 text-2xl font-bold text-center text-slate-900 dark:text-slate-100">
Work Accomplishments
</h3>
<div className="rounded-lg border border-slate-200 bg-white text-slate-950 shadow-sm dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50 max-w-4xl mx-auto">
<div className="flex flex-col space-y-1.5 p-6">
<h3 className="text-2xl font-semibold leading-none tracking-tight text-2xl">
Dynamic Web Crawling System
</h3>
<p className="text-sm text-slate-600 dark:text-slate-400 text-lg">
Developed during my internship at PT Indonesia Indicator, this revolutionary crawling system is
capable of extracting data from various websites without needing to create a new crawler for each
website. This system allows for dynamic and more efficient data retrieval.
</p>
</div>
<div className="p-6 pt-0">
<div className="grid md:grid-cols-2 gap-6">
<div>
<h4 className="font-semibold mb-2 text-slate-900 dark:text-slate-100">Key Features:</h4>
<ul className="list-disc list-inside text-slate-600 dark:text-slate-400 space-y-1 mb-4">
<li>Dynamic configuration for different website structures</li>
<li>Scalable backend architecture using Go</li>
<li>Real-time monitoring dashboard</li>
<li>Efficient data processing and management</li>
</ul>
</div>
<div>
<h4 className="font-semibold mb-2 text-slate-900 dark:text-slate-100">Technologies:</h4>
<div className="flex flex-wrap gap-2 mb-4">
<span className="inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300 text-slate-950 dark:text-slate-50">
Go
</span>
<span className="inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300 text-slate-950 dark:text-slate-50">
Tailwind CSS
</span>
<span className="inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300 text-slate-950 dark:text-slate-50">
HTMX
</span>
<span className="inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300 text-slate-950 dark:text-slate-50">
Templ
</span>
</div>
</div>
</div>
<div className="flex gap-4">
<span className="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-slate-950 dark:focus-visible:ring-slate-300 bg-slate-900 text-slate-50 hover:bg-slate-900/90 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-50/90 h-10 px-4 py-2 opacity-50 cursor-not-allowed">
<Briefcase className="mr-2 h-4 w-4" />
Work Accomplishment
</span>
</div>
</div>
</div>
</div>
</div> </div>
</section> </section>
+305 -327
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -12,7 +12,7 @@
"@react-router/node": "^7.7.1", "@react-router/node": "^7.7.1",
"@react-router/serve": "^7.7.1", "@react-router/serve": "^7.7.1",
"isbot": "^5.1.27", "isbot": "^5.1.27",
"lucide-react": "^0.577.0", "lucide-react": "^0.575.0",
"react": "^19.1.0", "react": "^19.1.0",
"react-dom": "^19.1.0", "react-dom": "^19.1.0",
"react-router": "^7.7.1", "react-router": "^7.7.1",
@@ -21,12 +21,12 @@
"devDependencies": { "devDependencies": {
"@react-router/dev": "^7.7.1", "@react-router/dev": "^7.7.1",
"@tailwindcss/vite": "^4.1.11", "@tailwindcss/vite": "^4.1.11",
"@types/node": "^24.0.0", "@types/node": "^20",
"@types/react": "^19.1.2", "@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2", "@types/react-dom": "^19.1.2",
"tailwindcss": "^4.1.11", "tailwindcss": "^4.1.11",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"vite": "^7.0.0", "vite": "^6.3.3",
"vite-tsconfig-paths": "^6.0.0" "vite-tsconfig-paths": "^5.1.4"
} }
} }