Skip to content

Releases: TweaXy/backend

🔥 Final Release !!

28 Dec 06:49
Compare
Choose a tag to compare

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
    • add namespace throughout whole code to easy navigate functional documentation
    • refactor & reviewed functional documentation through all utils & service
    • add cool theme to jsdoc functional documentation
      Untitled

🤓 Coverage Report

we achieved 92**% of code covered**

Untitled

Swagger Documentation

Untitled

Socket kind of Documentation

chat doc light mode.jpeg

Chat Release

27 Dec 18:34
bad18f6
Compare
Choose a tag to compare
Chat Release Pre-release
Pre-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 !!

05 Dec 17:58
ae79e2c
Compare
Choose a tag to compare

🔥 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

25 Nov 18:19
4a35bdd
Compare
Choose a tag to compare
Pre-release

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.