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.