Skip to content

nikhilCad/photogram

Repository files navigation

Photogram - An image sharing social media platform

Try it out here

Or run it locally

npm run dev

Watch the demo on Youtube

Photogram

Some screenshots:

Home Page

Create Post

Profile Page

Tools used for this project

  • React
  • Firebase
  • Vite
  • ChakraUI

React offers a component based approach to build frontend

ChakraUI has many common elements already defined for us to use ChakraUI has Text, Avatar, VStack, Flexbox, Modal, Button etc

Vite is an alternative to create-react-app, it offers faster build speeds and supports a variety of frameworks Firebase is used for backend

Zustand - Global State management for React, to change frontend values like Followers, Likes etc as soon as they are changed in backend Zustand is mainly used used for state management, so that our changes immediately reflect, also used for chaning state between homepage and login page

React-firebase-hooks - React for firebase, it has many common use-case function like sign in with email, with Google, passowrd, logout, giving error codes etc

Firebase - used for authentication, storage, and database, images are stored as base64 encoded string and they have a maximum size of 2Mb Database is of users(followers, posts etc) of Posts(image url, likes, comments etc) of comments(author content, created at etc)

Consists of reusable components and hooks like usePreviewImg.js which is used to select new profile picture in edit profile and create new post in photogram

You must add a .env file at the root of the project with the following variables from your own firebase account

FIREBASE_APIKEY,

FIREBASE_AUTHDOMAIN,

FIREBASE_PROJECTID,

FIREBASE_STORAGEBUCKET,

FIREBASE_MESSAGINGSENDERID,

FIREBASE_APPID,

FIREBASE_MEASUREMENTID

Releases

No releases published

Packages

No packages published

Languages