Skip to content

Commit

Permalink
cicd
Browse files Browse the repository at this point in the history
  • Loading branch information
GreenH47 committed May 29, 2024
1 parent 598689c commit f4e1d6d
Show file tree
Hide file tree
Showing 12 changed files with 105 additions and 111 deletions.
44 changes: 44 additions & 0 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@


on:
push:
branches:
- main


jobs:
unit-tests:
runs-on: ubuntu-latest

steps:
- name: Checkout code repo
uses: actions/checkout@v2


- name: Login to Docker Hub
env:
DOCKERHUB_USERNAME: greenh47
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
run: echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin

- name: Build and Push Docker Image
run: |
docker build --platform linux/arm64 -t greenh47/homepage:nextjs .
docker push greenh47/homepage:nextjs
- name: Update docker image
id: update-ec2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST_IP }}
username: ubuntu
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
# stop docker compose
sudo docker compose stop home_page
# pull the latest image
sudo docker pull greenh47/homepage:nextjs
# start the docker compose
sudo docker compose up -d home_page
Binary file removed public/files/sagar-cv-2023.pdf
Binary file not shown.
Binary file added public/images/avator/jingsheng-chang.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/images/sagar-full-pose.jpg
Binary file not shown.
Binary file removed public/images/sagar-headshot.jpg
Binary file not shown.
51 changes: 28 additions & 23 deletions src/components/data-display/testimonial-details.tsx
Original file line number Diff line number Diff line change
@@ -1,32 +1,37 @@
import Image from 'next/image';

import { TestimonialDetails as TestimonialDetailsProps } from '@/lib/types';
import {TestimonialDetails as TestimonialDetailsProps} from '@/lib/types';
import Typography from '@/components/general/typography';
import Card from '@/components/layout/card';

const TestimonialDetails = ({
personName,
personAvatar,
testimonial,
title,
}: TestimonialDetailsProps) => {
return (
<Card className="mx-auto flex flex-col items-center gap-6 p-8 md:w-2/3 md:p-12 lg:w-1/3">
<Image src={personAvatar!} alt={`${personName} avatar`}></Image>
<Typography>&quot;{testimonial}&quot;</Typography>
<div className="flex w-full flex-col gap-1">
<Typography
variant="subtitle"
className="w-full text-center font-semibold text-gray-900"
>
{personName}
</Typography>
<Typography variant="body3" className="w-full text-center">
{title}
</Typography>
</div>
</Card>
);
personName,
link,
personAvatar,
testimonial,
title,
}: TestimonialDetailsProps) => {
return (
<Card className="mx-auto flex flex-col items-center gap-6 p-8 md:w-2/3 md:p-12 lg:w-1/3">
<Image src={personAvatar!} alt={`${personName} avatar`}></Image>
<Typography>&quot;{testimonial}&quot;</Typography>
<div className="flex w-full flex-col gap-1">
<Typography
variant="subtitle"
className="w-full text-center font-semibold text-gray-900"
>

<a href={link} target="_blank" rel="noopener noreferrer">{personName}</a>

</Typography>


<Typography variant="body3" className="w-full text-center">
{title}
</Typography>
</div>
</Card>
);
};

export default TestimonialDetails;
41 changes: 8 additions & 33 deletions src/components/sections/about-me.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,58 +40,33 @@ const AboutMeSection = () => {
noCustomization
externalLink
withUnderline
href={EXTERNAL_LINKS.FIGMA}
href={EXTERNAL_LINKS.GITHUB}
>
self-proclaimed designer
self-proclaimed programmer
</Link>{' '}
who specializes in full stack development (React.js & Node.js). I am
who specializes in full stack development (React.js & Csharp). I am
enthusiastic about bringing the technical and visual aspects of
digital products to life. User experience, pixel perfect design, and
writing clear, readable, highly performant code matters to me.
</Typography>
<Typography>
I began my journey as a web developer in 2015, and since then,
I began my journey as a web developer in 2021, and since then,
I&apos;ve continued to grow and evolve as a developer, taking on new
challenges and learning the latest technologies along the way. Now,
in my early thirties, 7 years after starting my web development
in my early thirties, 3 years after starting my web development
journey, I&apos;m building cutting-edge web applications using
modern technologies such as Next.js, TypeScript, Nestjs,
Tailwindcss, Supabase and much more.
modern technologies such as Next.js, TypeScript, Nestjs,and much more.
</Typography>
<Typography>
I am very much a progressive thinker and enjoy working on products
end to end, from ideation all the way to development.
</Typography>
<Typography>
When I&apos;m not in full-on developer mode, you can find me
hovering around on twitter or on indie hacker, witnessing the
journey of early startups or enjoying some free time. You can follow
me on{' '}
<Link
noCustomization
externalLink
withUnderline
href={EXTERNAL_LINKS.TWITTER}
>
Twitter
</Link>{' '}
where I share tech-related bites and build in public, or you can
follow me on{' '}
<Link
noCustomization
externalLink
withUnderline
href={EXTERNAL_LINKS.GITHUB}
>
GitHub
</Link>
.
</Typography>

<Typography>Finally, some quick bits about me.</Typography>
<div className="flex flex-col gap-2 md:flex-row md:gap-6">
<ul className="flex list-inside list-disc flex-col gap-2">
<Typography component="li">
B.E. in Computer Engineering
Master of Information Technology
</Typography>
<Typography component="li">Full time freelancer</Typography>
</ul>
Expand Down
8 changes: 3 additions & 5 deletions src/components/sections/hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,9 @@ const HeroSection = () => {
<span className="inline-block animate-waving-hand">👋</span>
</Typography>
<Typography>
I&apos;m a full stack developer (React.js & Node.js) with a focus
on creating (and occasionally designing) exceptional digital
experiences that are fast, accessible, visually appealing, and
responsive. Even though I have been creating web applications for
over 7 years, I still love it as if it was something new.
As a motivated and resourceful individual with a Master's degree in IT from Monash University, I am eager to kickstart my career in the
field of software development, web development, or cloud engineering. Equipped with AWS Solutions Architect Associate certification,
I possess a strong foundation in cloud computing. Proficient in C#, Java, Python, SQL, and Android
</Typography>
</div>
<div className="flex flex-col gap-2">
Expand Down
2 changes: 1 addition & 1 deletion src/components/sections/skills.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Container from '@/components/layout/container';

const SkillsSection = () => {
return (
<Container>
<Container id="Skills">
<div className="flex flex-col items-center gap-4">
<div className="self-center">
<Tag label="Skills" />
Expand Down
3 changes: 2 additions & 1 deletion src/components/sections/testimonials.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ import Tag from '@/components/data-display/tag';
import TestimonialDetails from '@/components/data-display/testimonial-details';
import Typography from '@/components/general/typography';
import Container from '@/components/layout/container';
import Link from 'next/link';

const TestimonialsSection = () => {
return (
<Container id="testimonials" className="bg-gray-50">
<div className="flex flex-col items-center gap-4">
<div className="self-center">
<Tag label="Testimonials" />
<Tag label="Reference" />
</div>
<Typography variant="subtitle" className="max-w-xl text-center">
Nice things people have said about me:
Expand Down
66 changes: 18 additions & 48 deletions src/lib/data.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,10 @@ import LogoTypescript from '/public/images/logos/icon-typescript.svg';
import LogoReact from '/public/images/logos/icon-react.svg';
import LogoNextjs from '/public/images/logos/icon-nextjs.svg';
import LogoNodejs from '/public/images/logos/icon-nodejs.svg';
import LogoExpress from '/public/images/logos/icon-express.svg';
import LogoExpressLight from '/public/images/logos/icon-express-light.svg';
import LogoNest from '/public/images/logos/icon-nest.svg';
import LogoSocket from '/public/images/logos/icon-socket.svg';
import LogoSocketLight from '/public/images/logos/icon-socket-light.svg';
import LogoPostgreSQL from '/public/images/logos/icon-postgresql.svg';
import LogoMongoDB from '/public/images/logos/icon-mongodb.svg';
import LogoSass from '/public/images/logos/icon-sass.svg';
import LogoTailwindcss from '/public/images/logos/icon-tailwindcss.svg';
import LogoFigma from '/public/images/logos/icon-figma.svg';
import LogoCypress from '/public/images/logos/icon-cypress.svg';
import LogoCypressLight from '/public/images/logos/icon-cypress-light.svg';
import LogoStorybook from '/public/images/logos/icon-storybook.svg';
import LogoGit from '/public/images/logos/icon-git.svg';

import LogoUpwork from '/public/images/logos/logo-upwork.svg';
Expand All @@ -34,6 +25,8 @@ import AvatarKrisztian from '/public/images/avatar-krisztian.png';
import AvatarEugen from '/public/images/avatar-eugen.png';
import AvatarDummy from '/public/images/avatar-dummy.svg';

import Avator_Jingsheng_Chang from '/public/images/avator/jingsheng-chang.jpg';

import {
ExperienceDetails,
ProjectDetails,
Expand All @@ -60,7 +53,11 @@ export const NAV_LINKS = [
href: '#work',
},
{
label: 'Testimonials',
label: 'Skills',
href: '#Skills',
},
{
label: 'References',
href: '#testimonials',
},
{
Expand Down Expand Up @@ -110,23 +107,7 @@ export const TECHNOLOGIES: TechDetails[] = [
logo: LogoNodejs,
url: 'https://nodejs.org/en',
},
{
label: 'Express.js',
logo: LogoExpress,
darkModeLogo: LogoExpressLight,
url: 'https://expressjs.com/',
},
{
label: 'Nest.js',
logo: LogoNest,
url: 'https://nestjs.com/',
},
{
label: 'Socket.io',
logo: LogoSocket,
darkModeLogo: LogoSocketLight,
url: 'https://socket.io/',
},

{
label: 'PostgreSQL',
logo: LogoPostgreSQL,
Expand All @@ -137,11 +118,7 @@ export const TECHNOLOGIES: TechDetails[] = [
logo: LogoMongoDB,
url: 'https://www.mongodb.com/',
},
{
label: 'Sass/Scss',
logo: LogoSass,
url: 'https://sass-lang.com/',
},

{
label: 'Tailwindcss',
logo: LogoTailwindcss,
Expand All @@ -152,21 +129,11 @@ export const TECHNOLOGIES: TechDetails[] = [
logo: LogoFigma,
url: 'https://www.figma.com/',
},
{
label: 'Cypress',
logo: LogoCypress,
darkModeLogo: LogoCypressLight,
url: 'https://www.cypress.io/',
},
{
label: 'Storybook',
logo: LogoStorybook,
url: 'https://storybook.js.org/',
},

{
label: 'Git',
logo: LogoGit,
url: 'https://git-scm.com/',
url: 'https://github.com/GreenH47',
},
];

Expand Down Expand Up @@ -268,22 +235,25 @@ export const PROJECTS: ProjectDetails[] = [

export const TESTIMONIALS: TestimonialDetails[] = [
{
personName: 'Krisztian Gyuris',
personAvatar: AvatarKrisztian,
title: 'Founder - inboxgenie.io',
personName: 'jingsheng-chang',
personAvatar: Avator_Jingsheng_Chang,
link: 'https://www.linkedin.com/in/jingsheng-chang-2216381b4/',
title: 'CoFounder - cpu-education',
testimonial:
'Job well done! I am really impressed. He is very very good at what he does:) I would recommend Sagar and will rehire in the future for Frontend development.',
'Job well done! I am really impressed. He is very very good at what he does:) I would recommend Green and will rehire in the future for Frontend development.',
},
{
personName: 'Eugen Esanu',
personAvatar: AvatarEugen,
link: 'https://www.linkedin.com/in/jingsheng-chang-2216381b4/',
title: 'Founder - shosho.design',
testimonial:
'Great guy, highly recommended for any COMPLEX front-end development job! His skills are top-notch and he will be an amazing addition to any team.',
},
{
personName: 'Joe Matkin',
personAvatar: AvatarDummy,
link: 'https://www.linkedin.com/in/jingsheng-chang-2216381b4/',
title: 'Freelancer',
testimonial:
'Sagar was extremely easy and pleasant to work with and he truly cares about the project being a success. Sagar has a high level of knowledge and was able to work on my MERN stack application without any issues.',
Expand Down
1 change: 1 addition & 0 deletions src/lib/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export type ProjectDetails = {
export type TestimonialDetails = {
personName: string;
personAvatar?: string | StaticImageData;
link: string;
testimonial: string;
title: string;
};

0 comments on commit f4e1d6d

Please sign in to comment.