- const ref
- move semantics
- modern data structures
- modern algorithms
- smart pointers
- template
- Regex
- DLL
- Logging
- At startup, a user is given the option to log in to their account or they can create an account. Login / registration involves entering the username.
- The main menu displays the following options (features):
- Post: the user can make a text post of up to 140 characters;
- Personal Profile: The user can see the history of his posts
- Follow function: user can "make friends" with other users. This way you can build the social graph of the platform.
- Feed: viewing posts. One post at a time will be displayed - see details below. The following options will be posted below:
- Like or Dislike - the user can like / dislike and withdraw their reaction
- Comment - the user can write a comment, and the list of comments will be updated
- See all comments
- Retweet - the user will be able to enter a preface to his post
- Go to referenced tweet - if the post is a retweet, it will be possible to access the original post
- Next / previous post
- Back to main menu
- Keyword Search: The user enters a multi-keyword query and displays posts that contain at least one searched keyword - see Inverted Index.
- User Search: The user enters a user name as a query and the list of results is displayed. A result does not have to be identical to the query, but similar values can be displayed. To compare strings implement distance Levenshtein.
Warning: Try to prioritize the latest results.
Warning: username must be unique!
- GUI - graphical interface for all the functionalities in the minimum scale of the client application.
- Networking - the communication between client and server applications to be done using Sockets
- Database - the data used by the server will be manipulated using a database