A

n

d

r

e

w

`

D

a

n

g

F

u

l

l

`

S

t

a

c

k

`

D

e

v

e

l

o

p

e

r

B
a
c
k
g
r
o
u
n
d
`
i
n
`
A
r
c
h
i
t
e
c
t
u
r
e
`
a
n
d
`
A
r
t

Exhibits

• Freelance : Worked on Exhibits web-app as the sole designer and developer. Collaborated with the founder through meetings to refine and iterate designs.

• Exhibits transforms how users discover and engage with London’s vibrant art scene. With an intuitive interface, it allows exploration of over 150 ongoing exhibits, 250 venues, and 75 curated categories — all constantly updated to ensure users never miss out on something new.

• Seamlessly integrated an existing Django backend with a Next.js app, utilising SSG, ISR, and fetch caching to achieve faster page loads, improved SEO, and reduced server load.

• Achieved Lighthouse scores of 90+ for Performance, Accessibility, Best Practices, and SEO.

Next.js
TypeScript
TailwindCSS
ShadCn
Framer Motion
React Query
AuthJs
React-Hook-Form
Zod
Zustand
Django REST framework

Quizmu

• Online Communual FlashCard Quizz Maker and Tester

• View and edit collection in dashboard, create cards in tables

• Backend/database utilising SQL joins, aggregate functions, CTEs and more

• Implementing caching for fetch requests with on-demand revalidation

Next.js
TypeScript
SASS/SCSS Modules
Framer Motion
Zod
AuthJs
PostgreSQL
Neon
PostgresJs
Cloudinary

Clippr.

Personalised Barber Discovery and Booking App based on ethnicity and venue type

Next.js
TypeScript
TailwindCSS
Supabase
Supabase Auth
SQL
Zustand
React Hook Form
clippr imageUnique landing page with scrollbased animation.
clippr imagePersonalisation input modal + utilising Google location auto-complete API.
clippr imageView/interaction of appointments. Navigates to table of previous haircuts
clippr imageBooking calander system shows available cuts on barber available days.
clippr imageCustomer looking through past cuts + review
clippr imageAccount set up creation with image uploads

Racket Radar

Personalised badminton racket finder and matcher based on skill level and user preferences

React
JavaScript
CSS
Node.js
Express.js
MongoDb
racket imageDynamically filter rackets based on racket/user specifications
racket imageSelect and compare, like and favourite
racket imageFind out user skill level, placed in region of suggested rackets

Door Dilemma

• Web game created/built as part of Founders & Coders submission. Built using only HTML, CSS, and JavaScript.

• Players take in turn to choose 'doors' that result in reward or penalty. Higher risks = Higher rewards. Special effects and modifiers offers exciting gameplay and strategy.

HTML
CSS
JavaScript

Hang Man

•Interactive Hang-Man App Built in React

•Custom Animations and graphics

React
JavaScript
CSS
Redux Toolkit
racket imageWin outcome - Custom animted SVGs
hangman imageLose outcome - definition of word fetched via dictionary API

Website Portfolio

The website you're currently on!

Next.js
TypeScript
SASS/SCSS
Framer Motion
clippr imagePortfolio website consisting of dynamic custom and scroll-based animations

Tech Stack

    HTML

    CSS

    Javascript

    TypeScript

    React

    Next.js

    Tailwind

    Saas

    Framer Motion

    postSQL image

    PostgresSQL

    Node.js

    Express.js

    neon image

    Neon

    Supabase

    MongoDb

    authjs image

    Auth.Js

    React HookForm

    Zod

Other Works

Contact


Send me a message

    Sent!