Giter VIP home page Giter VIP logo

diggit's Introduction

Diggit

Diggit is a simple social media app inspired by reddit , actually it is a reddit clone.

A next level reddit clone because it's built with Nextjs ๐Ÿ˜†

Heroku Vercel

Table of contents

Features

This web app consists of a basic features/functionalities of reddit

  • Login and Registration
  • Search for Subs feature
  • Create Sub
  • Add Posts to Sub
  • Comment feature
  • Upload sub's picture and cover to Sub
  • Upvote/Downvote feature for Posts and Comments

Technologies

Front End Back End
Nextjs Node
TypeScript TypeORM
ContextApi postgres
SWR TypeScript
PostCSS Express JS
TailwindCSS JWT
Axios Cloudinary

Installation

1- Clone the repo

$ git clone https://github.com/MohanedAshraf/diggit.git

2- Install server dependencies

$ npm install

3- Install client dependencies

$ cd client
$ npm install

Run Locally

Before running the project, make sure to have the following done:

  • For Server Create .env at the global path and set variables as env.example
PORT=<port eg: 5000>
NODE_ENV=development
APP_URL=<your server url, default: http://localhost:5000>
ORIGIN=<your client url, default: http://localhost:3000>

JWT_SECRET=<any secret key>

DATABASE_URL=postgres://<databse username>:<databse username>@localhost:5432/<database name>
DB_DIALECT=postgres
DB_PORT=5432
DB_HOST=localhost
DB_USERNAME=<databse username>
DB_PASSWORD=<databse username>
DB_DATABASE=<your database name>



CLOUD_NAME=<cloud name>
CLOUDINARY_API_KEY=<cloud key>
CLOUDINARY_API_SECERT=<cloud secret key>

  • For Client Create .env.local at /client/ and set variables as env.example
NEXT_PUBLIC_SERVER_BASE_URL=<your server url, default: http://localhost:5000>
NEXT_PUBLIC_CLIENT_BASE_URL=<your server url, default: http://localhost:3000>
APP_DOMAIN=localhost

After doing the steps above, finally you can now run both ends simultaneously by running:

$ npm start dev

Or you can run them individually

$ npm run client // frontend
$ npm run server // backend

// Or you can change to individual directory then run
$ cd frontend // or cd server
$ npm start

Deployment

You can deploy your react app in Vercel or whatever your preferred deployment platform. And for the backend, you can deploy your server in Heroku

BackLog

  • Dark mode feature.
  • Make subs and posts pages responsive.
  • Create modals to tell users to login and signup.
  • Create editable user profile.
  • Add replay feature.
  • Make users post images and videos (youtube).
  • Make users update and delete posts.
  • Make users update and delete comments.

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.