Skip to content

Latest commit

 

History

History
110 lines (87 loc) · 3.34 KB

README.md

File metadata and controls

110 lines (87 loc) · 3.34 KB

image

Qwitter-Backend

Complete Backend Application implemented using Express.js, Typescript , Prisma and PostgreSQL.

Table of Contents

Features

  • User authentication and authorization (signup, login, Google Authentication)
  • Tweet creation, retrieval, update, and deletion
  • User Relations management (follow, mute, block)
  • Timeline/ For you
  • Real-time notifications
  • Real-time Chatting

Technologies Used

  • JSDoc and Swagger for API documentation
  • Zod for Schema Validation
  • Prisma as an ORM
  • Socket.io for real-time notifications and chatting
  • Azure Blob for images and videos upload
  • Nodemailer and Gmail for sending emails
  • Passport for OAuth
  • Jest and SuperTest for testing
  • Bcrypt for hashing passwords

Installation

1- Clone the repository:

git clone git@github.com:ahmedoshelmy/Qwitter-Backend.git

2- Navigate to project folder

cd Qwitter-Backend

3 - Install libraries & modules

npm install

4 - Create .env file

PORT=<your_port_number>
URL=<your_url>
HOST=<your_host>
DATABASE_URL="<your_database_url>"
NODE_ENV=development
EMAIL=<your_email>
EMAIL_SMTP_PASSWORD=<your_email_smtp_password>
GOOGLE_CLIENT_ID=<your_google_client_id>
GOOGLE_CLIENT_SECRET=<your_google_client_secret>
GOOGLE_CALLBACK_URL=<your_google_callback_url>
JWT_SECRET=<your_jwt_secret>
JWT_EXPIRES_IN=<your_jwt_expires_in>
SALT="<your_salt>"
CLIENT_SIDE=<your_client_side_url>
AZURE_CONTAINER=<your_azure_container>
AZURE_BUCKET_URL="<your_azure_bucket_url>"
AZURE_KEY="<your_azure_key>"
AZURE_ACCOUNT_NAME=<your_azure_account_name>

5- Generate Primsa Client and Migrate the schema

npm run psrisma:generate
npm run psrisma:migrate

6- Run server

npm run start

7- Generate Unit testing reports

npm run test

8- Generate functional documentation

npm run docs

Documentaion

Contributors


Ahmed Osama Helmy


Ahmed Osama Zahran


Ahmed Ibrahim


Ghaith