Basically it is a clone of twitter (https://twitter.com/) with fewer and simpler features.
User interface can be simple but should contain as much information as possible without making it messy ( put some brains to show your creativity and imagination power ).
- User Registration:
- To use "Twitter For Zombies" one must register as user.
- email address (required)
- e.g. zombie@example.com
- must be unique
- full name (required)
- e.g. Hannibal Smith
- this will be the name other users will see in the system
- username (required)
- date of birth (user must be 14+, 16+, 18+ etc.)
- gender
- profile picture
- send welcome email upon registration (optional)
- email address (required)
- To use "Twitter For Zombies" one must register as user.
- Search User:
- user can search for other users by e-mail address, nickname
- User Profile View:
- profiles are public
- name, profile picture, age, gender - publicly visible
- email address is also publicly visible
- Follow:
- user can follow other users
- following other users will show their tweets in current user’s home page
- Tweet:
- post a tweet
- image attachment option
- user can delete his/her tweet
- Comment:
- post a comment under a tweet
- image attachment option
- owner of the parent tweet can delete a comment
- Also the owner of the comment can delete it
- Favourite List (Optional):
- user maintain a favourite list of other users
- user will get email notification for any tweet from users in his/her favourite list
- Black LIst (Optional):
- user can maintain a blacklist of other users
- blacklisted users can not interact with the current user in any way
- blacklisted users can view the profile of current user but will not be able to see any tweet and obviously can not comment under any tweet of current user
- Language - (Java/Groovy/Kotlin)
- Web Framework - (Spring MVC/Spring Boot)
- ORM - Hibernate
- Database migration tool - (Liquibase/Flyway)
- Responsive UI - Bootstrap
- JQuery
- JUnit (with a minimum of 70% test coverage)
- Must follow coding conventions - (PMD, CheckStyle, FindBugs, CodeNarc)
- Must use Object Oriented Design Principles and Patterns
- Must use version control for code management. (github/bitbucket)