Giter Site home page Giter Site logo

nextjs-instagram's Introduction

NextJS Instagram Clone

An implementation of Instagram utilizing NextJS - a React framework.

Live Demonstration: https://cyangram.vercel.app/

Project Info

More about the project can be found at: https://www.theodinproject.com/paths/full-stack-javascript/courses/javascript/lessons/javascript-final-project

Internal Documentation:

User Input Constraints

Category Input Type Min Length Max Length Others Constraints
Profile Name 8 30 Only letters, numbers, underscores, and periods
Username 8 30 Only letters, numbers, underscores, and periods
Bio - 200 Can't start & end with whitespace
Account Password 6 - Can't start & end with whitespace
Post Description - 200 Can't start & end with whitespace
Comment - 200 Can't start & end with whitespace
Messages Message - 200 Can't start & end with whitespace
Images Image - 5MB Configurable in the environment variables.

Admin Panel

When logged in as the admin user, going to <site url>/admin url will bring up the admin panel page. There, you can delete a user, post, or comment from knowing its id.

It's important to make sure you set the ADMIN_ID environment variable to the user that will have admin privileges.

The admin account will function like a normal account as well.

Features

This utilizes NextJS which allows us to do both the back and frontend in the same project. The backend is done through the /api page routes. I utilized MongoDB for the general storage of everything and Firebase for image storage.

Currently, we limit the use of the app to authenticated users (ie: users with an account).

We also utilize reCaptcha V3 to verify signup requests.

Messaging

  • "Realtime" Messaging โ€” to prevent pinging our backend too much, we have it update every 30 seconds (this can be changed in components/pageLayouts/messagingPages/conversation.js file by changing the REFRESH_TIME_MS varaible).

User Profile

  • Edit profile (Profile Picture, Username, Name, Password, Bio, Delete Account)
  • Follow/Unfollow People

Posts

  • Home feed with option to show posts from those we follow or a discover feed
  • Create/delete posts
  • Like & comment on posts
  • Get sharable link for posts

Search

  • You can search for other users!

Themes & Layout

  • Supports Light/Dark Modes
  • Mobile-friendly

Installation & Setup

Environment Variables

Look in the ENVFileInfo.md file for more information.

Running the App Locally

To run the app locally, run npm run dev;

nextjs-instagram's People

Contributors

cyanchill avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.