HomeGallery

// COMPUTER_SCIENCE

COMPUTER SCIENCE

[MAJOR]

// PROJECTS

this->website

FEATURED

this->website

01 / 02

// ALL_WORK

this->website

01 / PROJECT

this->website

Password-protected photography gallery that converts Olympus .ORF raw files into a searchable, album-organised web gallery.

// FEATURES

  • ORF → JPEG extraction via rawpy on upload
  • Two-tier password auth (gallery / admin), rate-limited, httpOnly cookies
  • Server-side API proxy. Key never reaches the browser
  • Paginated gallery (24/load), search, album filtering and renaming
  • Flip cards with blurred photo backdrop, touch swipe, single-flip-at-a-time
  • Edit request form with filename pre-fill from gallery search

// CHALLENGES

Vercel's 4.5 MB function limit blocked ORF uploads

Presigned R2 URLs. Browser PUTs directly to R2, backend processes in place

API key visible in browser JS bundle

Next.js catch-all proxy route injects key server-side

backdrop-filter silently killed 3D flip animation on Safari

Moved glass styling to individual card faces, not the rotating container

Password cookie missing after router.replace() on Safari

window.location.href forces a full browser request, guaranteeing cookie availability

PythonReactMongoDBCloudflare R2VercelNext.js
VIEW_→
Computer Store Manager

02 / PROJECT

Computer Store Manager

C++ OOP inventory system for a computer store, using polymorphic class hierarchies, STL vectors, and file-based persistence.

// FEATURES

  • Polymorphic hierarchy: Computer base class with PC, Laptop, and Tablet derived classes
  • Parses computers.txt into vector<Computer*> on startup via a factory function
  • Virtual displayinfo() method renders type-specific fields for each item
  • Search across inventory by multiple criteria
  • Staff alterations: add, delete, and update records with try/catch error handling
  • Virtual destructors and explicit delete loop prevent memory leaks on exit

// CHALLENGES

Storing mixed PC/Laptop/Tablet types in one container without slicing

vector<Computer*> base class pointers preserve derived types via polymorphism

Safely deleting heap-allocated polymorphic objects

Virtual destructor on Computer base class; final loop calls delete on every pointer

Constructing the correct derived class from a flat CSV row

addComputer() factory reads the type field and returns the matching derived object

C++OOPSTLPolymorphismFile I/O
VIEW_→