Skip to content

Entire Twitter / X Responsive Clone built using Angular, Tailwind CSS, Spring Boot, MySQL and Docker for educational purposes.

License

Notifications You must be signed in to change notification settings

antonioalanxs/Twitter-Clone

Repository files navigation

Twitter-Clone

Table of Contents

  1. Team
  2. Overview
  3. Installation
  4. Documentation

Team

Name Nickname
Sergio de Oro Fernández @keyland71
Laura María Camino Yuste @Camyus027
Antonio José Alanís Bernal @antonioalanxs
Ikár Martínez de Lizarduy Kostornichenko @KandV008
Miguel Ángel Sánchez Miranda @MiguelAngelSM

To organize the team, we use Trello.

Overview

Entire Twitter / X Responsive Clone built using Angular, Tailwind CSS, Spring Boot, MySQL and Docker for educational purposes.

Demonstration of the application

Twitter Clone Demonstration

Installation

Prerequisites

Cloning the repository

git clone https://github.com/antonioalanxs/Twitter-Clone
cd Twitter-Clone

Run the application

Stop the application

docker compose down

The application was turned off.

Documentation

Sample users

User Username Password
@admin admin adminpass
@user user pass
@antonioalanxs antonioalanxs examplePassword3
@Keyland71 Keyland71 examplePassword2
@ibai ibai ibai
@Rubiu5 Rubiu5 rubius

API REST

Click here to see the API REST documentation. Powered by Swagger.

User permissions

  • Anonymous: User which has not signed up in the application but still has access to a few functionalities.
  • Registered: User who has already signed up in the application and has a wide variety of available functionalities.
  • Admin: User who has the overall control of the platform, having the strongest set of permissions.
User Tweets People Hashtags Notifications
Anonymous Read Read (see their profile) Read (can search them and read the impressions) Nothing
Admin Read, write (their own), delete (every tweet) Read, delete, write (their own profile) Read, write Read
Registered Read, write (their own), delete (their own) Read, write (their own profile) Read, write Read
Permissions Affects to
Images All registered users can upload images
Graphics Admin users can consult graphics with the statistics of the web (Number of new registered users)

Functional Requirements

Functional Requirements Anonymous User Registered User Admin User
Sign up ✔️
Log in ✔️ ✔️
See the preview ✔️
Search (using filters) ✔️ ✔️ ✔️
See tweet information ✔️ ✔️ ✔️
Interact with a tweet (retweet, like and comment) ✔️ ✔️
Reply to a tweet ✔️ ✔️
Save a tweet ✔️ ✔️
Write a tweet ✔️ ✔️
Delete a tweet ✔️ ✔️
Visualize recommend users ✔️ ✔️ ✔️
Receive notifications ✔️ ✔️
Receive email notifications ✔️
Visualize statistics ✔️
Edit profile ✔️ ✔️
Visualize profile ✔️ ✔️ ✔️
Follow a profile ✔️ ✔️
Visualize tendencies ✔️ ✔️ ✔️
Ban users ✔️
Unbanned users ✔️
Delete tweets ✔️
Verificate users ✔️
Unverificate user ✔️

Non Functional Requirements

  • Responsive Interface: Ensured optimal viewing and interaction across various devices, enhancing accessibility.

  • User-Friendly Interface: Ensure a seamless and enjoyable user experience, promoting easy navigation and interaction within the application.

  • Scalability: Built to handle a growing user base and data efficiently.

  • Availability: Ensures the application is available and accessible to users when needed.

  • Data should be durable with a SQL Database.

  • The size of a tweet is 240 characters at most.

  • Supports tweets comprising text and pictures.

Diagrams

Category URI
[UC1] - Sign up and Log in ↗️
[UC2] - Admin permissions ↗️
[UC3] - General permissions ↗️
[UC4] - Registered permissions ↗️
[UC5] - User actions ↗️
[NM1] - General ↗️
[NM2] - Anonymous user ↗️
[NM3] - Administrator user ↗️
[NM4] - Sign up and Password recovery ↗️
Entity - Relationship ↗️
Relational Model ↗️
Classes ↗️
Angular Components and Templates ↗️