mirror of https://github.com/01-edu/public.git
2 changed files with 42 additions and 35 deletions
@ -1,36 +1,31 @@ |
|||||||
# Hacker news |
## Hacker news |
||||||
|
|
||||||
### Introduction |
Hacker News is a social news website that mainly focuses on computer science and entrepreneurship. The objective of this task is to create a client with all the main features of the [HackerNewsAPI](https://github.com/HackerNews/API). |
||||||
|
|
||||||
Create your own hackernews [app](https://news.ycombinator.com/)! |
### Instructions |
||||||
|
|
||||||
Hacker News is a social news website, which mainly focusses on Computer Science and Entrepreneurship. You will make a client consisting of all the main features of the website. |
Your app should have the following functionalities: |
||||||
|
|
||||||
### Objective |
- Login button. Once you tap it a log in page must be displayed. |
||||||
|
- Show a list of all fetched `posts` on the main screen. |
||||||
|
- Each `post` should have an `upvote` option for voting. |
||||||
|
- Each `post` should display the total number of votes and comments they have. |
||||||
|
- Display the `username` of the `post` creator. |
||||||
|
- Display the submission time of the `post`. |
||||||
|
- Open the link in a [Webview](https://codelabs.developers.google.com/codelabs/flutter-webview#0) when a `post` is tapped. |
||||||
|
- The user must be able to return to the main page once in the `webview`. |
||||||
|
|
||||||
Your objective for this raid is to create UI for [HackerNewsAPI](https://github.com/HackerNews/API). |
On the website, users can `Post`, `Comment`, or `Reply` **only when they have an account**. |
||||||
|
|
||||||
Your app should have following functionality: |
- You have to register using the [website](https://news.ycombinator.com/). In other words, you must be able to login with your actual login and password from the Hacker News website. |
||||||
|
- Login using your app. Observe how the login is done on the [website](https://news.ycombinator.com/) and emulate it. |
||||||
|
|
||||||
- Show list of all fetched posts on main screen: |
When users are logged in, they should be able to: |
||||||
- Login button |
|
||||||
- Each Post has an Upvote option to vote the post |
|
||||||
- Each Post displays Total Votes and Total Comments on them |
|
||||||
- Displays the Username of the Creator |
|
||||||
- Displays the Submission Time |
|
||||||
- Open link in a [Webview](https://codelabs.developers.google.com/codelabs/flutter-webview#0) when post is tapped. |
|
||||||
|
|
||||||
On the website, we can Post, Comment, or reply **only when we have an account**. |
- `Create` new posts which will have: |
||||||
|
- `title`, `URL`, and a `description`. |
||||||
|
- `Delete` their own posts. |
||||||
|
- `Upvote` or hide/remove their votes. |
||||||
|
- `Log out`. |
||||||
|
|
||||||
- You have to register using the [website](https://news.ycombinator.com/). |
> Note: If the user is not logged in but tries to access any of the above-mentioned actions, the user should be sent to the login page of the app. |
||||||
- Login using your app. Observe how log in is done on the [website](https://news.ycombinator.com/), and emulate it. |
|
||||||
|
|
||||||
When users logged in, they should be able to: |
|
||||||
|
|
||||||
- Create new posts. They should have: |
|
||||||
- Title, URL and the Description. |
|
||||||
- Delete own post. |
|
||||||
- Make up-vote or hide their vote. |
|
||||||
- Log out. |
|
||||||
|
|
||||||
- Note: if user is not loggen in, but tries to access above mentioned actions, send user to login page of the app. |
|
||||||
|
@ -1,17 +1,29 @@ |
|||||||
#### Functional |
#### Functional |
||||||
|
|
||||||
> In order to run and hot reload app either on emulator or device, follow the [instructions](https://docs.flutter.dev/get-started/test-drive?tab=androidstudio#run-the-app) |
###### Does the app show a list of all fetched posts on the main screen? |
||||||
|
|
||||||
###### Does app shows all fetched posts? |
###### When you tap on a post, does it open the content in a `webview`? |
||||||
|
|
||||||
###### Tap any post, does it open webview of the content? |
###### Is it possible to go back to the main page from the `webview`? |
||||||
|
|
||||||
###### Can you go back to the main page? |
###### When you tap on the login button, does it open the login page? |
||||||
|
|
||||||
###### Tap login page. Does it open route to login? |
##### Login with your actual login and password from the Hacker News website |
||||||
|
|
||||||
###### Can you login with actual login and password from the website? |
###### Can you confirm that it was possible to login? |
||||||
|
|
||||||
###### After loggen in, try to upvote, comment, hide upvote on posts and see that it is reflected on the actual website. |
###### Can you `create` a new post? |
||||||
|
|
||||||
###### You should **not** be able to create posts, upvote, etc as **not** logged in user. Is that the case? |
###### Can you, `upvote`, `comment`, and `hide/remove upvotes` on posts and see that it is reflected on the actual website? |
||||||
|
|
||||||
|
###### Does each post display the `username` of the creator, and the total number of `upvotes` and `comments` that the post has received? |
||||||
|
|
||||||
|
###### Is it possible to see the submission time of the post? |
||||||
|
|
||||||
|
###### Can you `Delete` a post? |
||||||
|
|
||||||
|
##### Try to log out. |
||||||
|
|
||||||
|
###### Can you confirm that it is possible to log out? |
||||||
|
|
||||||
|
###### As a non-logged in user, are you prevented from `create`, `delete`, `comment`, `upvote` and `remove upvotes` on posts? |
||||||
|
Loading…
Reference in new issue