Skip to content

robbdimitrov/pixelgram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

422 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pixelgram

Pixelgram is a full-stack image-sharing platform built with a production-grade architecture. Combining a robust Go API with a modern Angular frontend, it provides a seamless experience for users to upload, browse, and interact with images.

Features

  • Monolithic Backend: Single Go service handling users, sessions, images, likes and uploads, backed by PostgreSQL.
  • Production-Ready & HA: Fully containerized, stateless service designed for High Availability deployments on Kubernetes.
  • Resilience: Built-in rate limiting, circuit breaker and retry-with-backoff protecting the API and the database layer.
  • Observability: Structured JSON logging with request ID propagation across the request lifecycle.
  • Modern Frontend: Built with Angular, Tailwind CSS, DaisyUI and Lucide icons.

Architecture

Service Language Description
backend Go HTTP API handling users, sessions, images, likes and uploads.
database PostgreSQL Schema migrations managed by migrate/migrate.
frontend TypeScript Angular SPA styled with Tailwind CSS and DaisyUI.

Deploy

Deploy the application to your active Kubernetes cluster using the provided script:

./scripts/deploy.sh

The script builds the Docker images, creates the Kubernetes namespace (pixelgram by default) and resources, waits for pods to be ready, and starts a port-forward to the frontend at http://localhost:8080/. It is idempotent and safe to re-run for updates.

Cleanup

To remove all deployed resources and the namespace:

kubectl delete -f ./k8s -n pixelgram
kubectl delete namespace pixelgram

Testing

Run all unit tests across the frontend and backend using the provided Makefile target:

make test

License

Licensed under the MIT License.

About

An image-sharing app utilizing a Go backend, PostgreSQL, session-based auth, and a responsive Angular frontend.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors