Complete Backend Application implemented using Express.js, Typescript , Prisma and PostgreSQL.
- 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
- 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
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
Ahmed Osama Helmy |
Ahmed Osama Zahran |
Ahmed Ibrahim |
Ghaith |