Releases: TweaXy/backend
Releases · TweaXy/backend
🔥 Final 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**
Swagger Documentation
Socket kind of Documentation
Chat Release
Direct Messages
- 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
🔥 First Release !!
🔥 First Release !!
Authentication & Registration
- Login
- I am not robot as separate api should we do UT?
- Register new user
- 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 | doing integration with CR]
- should we do UT?
- update email , username and password
Users Profile
- Search for matching users using their username or screen name (or part of them)
- 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.
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.
Tweets
- Add tweets
- Delete interactions (tweet | retweet | comment)
- Add, remove likes on tweets
- Get list of likers
Timeline & Trends
- Get a list of tweets in the home page of the user. (Timeline)
- Get a list of available trends
- Get a list of tweets in the profile of a user.
- Get tweets liked by the user
Media
- Add, get media
Extra requested
- check email verification using email & token
- check reset token using email & token
- check email uniqueness
- check username uniqueness
- check UUID exists UUID is user identifier {email, username, password}
- update username
Extra for testing should be removed after development done
- get users in database API to ease testing
For Server Maintenance
- sending emails to team members when unhandled rejection throw on server to fast took on problem
For DB Maintenance
- add prisma middleware to not delete any soft deleted models unless done explicitly
- add cron script run at 12:00 am every day to see if any expired data (after 90 days) to delete doing unit test
Basic User Functionality ~ Timeline
TweaXy Release Notes
v1.0.0-alpha - 25/11/2023
Summary
This release introduces several new features, enhancements, and bug fixes to improve the overall functionality and performance of the TweaXy API.
New Features
- User Authentication: Users can now create account and login to it.
- Login With Google: Users can now login using google.
- Timeline: Finish Timeline API of users.
Enhancements
- Better Functional Documentation: Brief description of the enhancement, such as improvements in performance, scalability, or user experience.
- Better Sign in with google: enhancement integration.
Bug Fixes
- [Bug Fix 1]: Description of the bug that has been fixed and how it was addressed.
- [Bug Fix 2]: Details of the second bug fix, including any important information.
API Changes
- [Endpoint 1]: Description of any changes made to existing API endpoints, including additions, modifications, or deprecations.
- [Endpoint 2]: Another endpoint change with relevant details.
Deprecations
- [Deprecated Feature 1]: Explanation of any features that have been deprecated in this release and guidance on alternatives.
- [Deprecated Feature 2]: Details about another deprecated feature and suggested replacements.
Known Issues
- List of any known issues or limitations in this release. Provide workarounds if available.
Security Updates
- Details about any security updates or patches applied in this release.
Documentation
- Updates to the project documentation, including new sections, revised content, or additional examples.
Contributors
- Acknowledgment and thanks to contributors who participated in this release.
How to Upgrade
Include instructions or a link to documentation on how users can upgrade to the latest version of the API.
Support and Feedback
- Provide information on how users can seek support or provide feedback on the release.
Changelog
For a detailed list of changes, refer to the changelog.