Welcome to the Instagram-Clone-Express-TS repository! This project aims to replicate the core features and functionality of the popular social media platform, Instagram, using Express.js and TypeScript. By building this clone, you'll gain hands-on experience in building a modern web application with a focus on backend development and API design.
- User Authentication: Implement a robust user authentication system, allowing users to sign up, log in, and reset their passwords securely.
- Profile Management: Enable users to create and edit their profiles, including uploading profile pictures and updating personal information.
- Image Upload and Sharing: Implement the ability for users to upload images, and share them with their followers or the public.
- News Feed: Create a dynamic news feed that displays images and posts from users a person follows.
- Comments and Likes: Allow users to comment on posts, like posts, and see a list of their own posts, comments, and likes.
- Responsive Design: Ensure the application is accessible and usable on various devices, including desktop and mobile.
- Fastify.js: A fast and minimalist web framework for Node.js.
- TypeScript: A statically typed superset of JavaScript, adding robustness to your codebase.
- Postgresql: A NoSQL database for storing user data, posts, and other information.
- GraphQL: A query language for APIs that provides a flexible and efficient way to request data.
- Apollo Server: A GraphQL server that integ rates seamlessly with Express.
- AWS S3: Use Amazon S3 for storing user-uploaded images securely.
- Authentication: Implement authentication using JWT (JSON Web Tokens) for secure user sessions.
To get started with this project, follow these steps:
-
Clone the repository to your local machine:
git clone https://github.com/BaseMax/InstagramExpressTS.git
-
Navigate to the project directory:
cd InstagramExpressTS- Install dependencies:
npm install-
Set up your environment variables by creating a
.envfile in the root directory. You can use the.env.examplefile as a template. -
You should set
DATABASE_URIfor running the app by docker:
DATABASE_URI = "postgresql://postgres:password@postgres:5432/Instagram?schema=public"
And then
docker compose buildand for starting the server and database in docker you should run
docker compose up -dfor runngin the Tests you should set DATABASE_URI = "postgresql://postgres:password@localhost:5432/InstagramTest?schema=public" in .env file and run the following command :
npm run test:e2eVisit http://localhost:3000 in your web browser to access the Instagram Clone application.
Feel free to customize these queries, mutations, examples, and response outputs to match the specifics of your Instagram clone project.
Contributions are welcome! If you'd like to contribute to this project, please read our Contributing Guidelines for more information.
This project is licensed under the GPL-3.0 License.
Copyright 2023, Max Base


















