An Instagram clone app written in Typescript that utilises Next.js as a framework, allowing for static HTML to be generated server-side on build time resulting in better performance and SEO. Moreover, it has allowed for dynamic page routing to be used for the profile pages of all users. For this project Jotai was incorporated to manage the React state throughout the app. Firebase (BaaS) was used for the database (NoSQL), to incorporate user authentication, and to utilise Firestore real-time updates. Additionally, the TailwindCSS framework was used to help with CSS management and to reduce the CSS bundle size by removing all unused CSS when building for production.
- Follower users to see their latest story and their most recent post.
- Unfollow users to stop receiving their latest updates.
- Upload a profile picture, or choose to not use a profile picture.
- Create post to fill out your user profile and to share your content with your followers.
- Other users can like your posts and leave comments for you to view.
- Create chat rooms with other users.
- Receive notifications when you receive new unread messages form other users.
- Receive notification updates when someone likes or comments on your posts.
- Like other users posts to let them know what you think.
- Leave messages on other users posts to tell them what you think about the post.
- Set a story to let your followers know what you have been up to recently.
- Once you view a story it will be displayed as viewed.
- Search for users by name (case sensitive).
- View other users profile pages and see all their posts.
- Use dark mode throughout the app if desired.
- Utilises local storage to keep track of your reference.
- Explore all registered users.
- Fully responsive design to allow the app to work on both computers, notepads, mobile phones, etc.
- Please follow the following steps if you would like to install and run the porject locally on http://localhost:3000/:
- Clone the repository to your local folder of choice
git clone git@github.com:Pierce-44/netflix-clone.git
- Go to Firebase and follow the instructions for creating a project
https://firebase.google.com/
-
Within your Firebase cloud storage create three folders named "posts", "profilePhotos" and "stories" (seen below):
-
Within your Firestore Database create two collections one named "userList" and the other "users" (seen below):
- Within your Firebase project allow email and password sign-in method.
-
Within
util/firbaseConfig.ts
replace the empty Firebase configuration with your Firebase configuration, which was assigned to your project when you created it and can be found under your project settings on Firebase. It should resemble the following example:// Your web app's Firebase configuration should resemble the following EXAMPLE: const firebaseConfig = { apiKey: "AIzaSyA97-R5P4bEwjV0efHt3hLs3bc32ns4shs", authDomain: "instagram-clone-ph.firebaseapp.com", projectId: "instagram-clone-ph", storageBucket: "instagram-clone-ph.appspot.com", messagingSenderId: "554003582327", appId: "1:554003582327:web:97667da84152c9ff7aa572" };
-
Install NPM packages
npm install
-
Start the app on your localhost
npm run dev