Photogram is a React + Redux + Firebase photo gallery frontend. It supports authentication, public/private gallery views, image upload with progress, archive/private toggles, and delete operations.
- React 17 + TypeScript
- Redux + redux-thunk
- React Router v6
- Firebase Auth + Firestore
- CRA (
react-scripts)
- Node.js
18(see.nvmrc) - Yarn 1.x
- Firebase project and API/backend endpoint for image processing/deletion
- Install dependencies:
yarn install- Create
.envin the project root:
REACT_APP_FIREBASE_API_KEY=...
REACT_APP_FIREBASE_AUTH_DOMAIN=...
REACT_APP_FIREBASE_PROJECT_ID=...
REACT_APP_FIREBASE_STORAGE_BUCKET=...
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=...
REACT_APP_FIREBASE_APP_ID=...
REACT_APP_FIREBASE_MEASUREMENT_ID=...
REACT_APP_API_URL=http://localhost:3003yarn start: run local dev server athttp://localhost:3000yarn test: run Jest/RTL testsyarn build: create production build inbuild/yarn eject: eject CRA config (irreversible)
/: public gallery/login: authentication page/upload: protected upload page (redirects to login when signed out)/mygallery: protected personal gallery page (redirects to login when signed out)
- This repository contains the frontend application.
- The image upload/delete API is consumed via
REACT_APP_API_URLand is expected to run separately. - Use Yarn for dependency management (
yarn.lockis the canonical lockfile).