π₯ Final Release !!
aliaagheisX
released this
28 Dec 06:49
·
1 commit
to new_version
since this release
TweaXy Backend
this backend repo
License
This software is licensed under MIT License, See License for more information.
Features
π Authentication & Registration
- Login
- Register new user with captcha
- send/resend email verification
- verify email
- Update username
- forget/reforget Password
- reset password using UUID
- Get user basic profile data using ID
- Google sign in
- [integrated with FR | **integrated with CR]**
π£οΈ Users Profile
- Search for matching users using their username or screen name (or part of them)
- Search on tweet of specific users [for CR]
- Delete/Add a profile banner (restores the default one)
- Update a profile picture given the new picture.
- Delete a profile picture (restores the default one)
- Get/Update the profile of a specific user.
eg:- username
- name
- bio
- birthday
- etc..
π©βπ¨ User Interactions
- Get a list of users that follow the username.
- Get a list of users that are followed by the username.
- Follow a certain user using their username.
- Unfollow a certain user using their username.
- add/delete get blocks
- Un/Mute a certain user using his username.*
- Get a list of muted users.
π¦ Tweets
- Add tweets
- Delete interactions (tweet | retweet | comment)
- Add, remove likes on tweets
- Get list of likers
- Add, Delete, Get tweets
- Get replies of a certain tweet
- Add, Delete retweet
- Add, remove likes on tweets
- Get list of retweeters
- Get list of likers
- Search tweets / or part of the tweet (Relevance suggestions)
π Timeline & Trends
- Get a list of tweets in the home page of the user. (Timeline) (ranked by likes, comments, retweets)
- Get a list of tweets in the profile of a user
- & search on them
- Get list of retweets in the profile of a user
- Get tweets that the user mentioned in it
- Get tweets liked by the user
- Get a list of tweets that matches (either fully or partially) the sent string. **relevance suggestions **
- Get a list of available trends
- Get a list of tweets in a given trend.
- Search hashtags
π Media
- Add, get media
π¦ Direct Messages
_ unit test done only on REST api endpoints _
- get conversations of user
- get messages of conversation
- add new message
- get number of unseen conversation (with unseen messages count)
- utilizing handshake authentication with socket connection
π Notification
- Get notifications list
- Get notifications unseen count
- push notification using firebase service β when:
- user follow me
- user liked on any of my interactions
- user commented on any of my interactions
- user retweeted on any of my interactions
- user get mentioned
πΆ Extra requested
- check email verification using email & token
- check reset token using email & token
- check email uniqueness
- check username uniqueness
- generate username unique at first step
- check UUID exists UUID is user identifier {email, username, password}
π€« Extra for testing should be removed after development done
- get users in database API to ease testing
Development Features
π For Server Maintenance
- sending emails to team members when unhandled rejection throw on server to fast took on problem
β»οΈ For DB Maintenance
- seed populated whenever we need to reset db
- add prisma middleware to not delete any soft deleted models unless done explicitly
- add cron script run @12:00 am every day to see if any expired data (after 90 days) to delete doing unit test
π§ For Repository Maintenance
- adding MIT licence to repo
- experiment first pre-commit on experimental branch
π For Code Maintenance
π€ we tried our best to refactor any duplicated code or function .when we review code and see duplicated code β we issue a task/ticket/github_issue about it
- Formatting & Lintting in general
- run formatter on all files
- add lint & format terminal commands to package.json
- π¨ pre-commit should stop run linnter before commit
- refactor & review unit testing
- add describe and separate files
- Refactor Functional Documentation
π€ Coverage Report
we achieved 92**% of code covered**