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.
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.