Mini-Twitter-Database

This was done as a database design course project at Amirkabir university of technology. This is a relational database management system that is built using MySQL and works with CLI in python.

This project contains the following files:

  • tables.sql: A DDL script to generate relational tables for our mini-twitter schema including relevant constraints.
  • procedures.sql: Several procedures to perform complex queries.
  • triggers.sql: Some triggers that are sensitive to a particular event and perform specific tasks as they occur.
  • Relational_schema.png: Relational Schema to better visualize relations among the tables.
  • database.py: A user interface through which we can communicate with the database through CLI and it uses all the features implemented for the Twitter system designed.

Usage

By using this project a user can follow actions:

  • A new user can register in the system and create an account.
  • A user who has an account can log in.
  • Each system user can send a new tweet.
  • Each user can view the tweets he/she has already sent.
  • A user can follow/unfollow another user.
  • A user can block/unblock another user.
  • Every user of the system can receive tweets sent by the people who follow them.
  • Each user of the system can receive tweets from another specific user.
  • Each user of the system can comment on the tweets of other users who have not blocked him/her.
  • Each user of the system can receive comments on a tweet.
  • This system also supports hashtags and a user can receive tweets of a hashtag.
  • Each system user can like a specific tweet.
  • Each user of the system can receive a list of people who liked a particular tweet.
  • A user can fetch famous tweets.
  • Each user of the system can send a message to another user and each message is either textual content or a tweet.
  • Each user of the system can receive a list of messages sent to him/her by a particular user.
  • Each user of the system can receive a list of people who have already sent him/her a valid message.

GitHub

https://github.com/aliazizii/Mini-Twitter-Database