This test has been deprecated as of 20230324. Please refer to new assignment
Please take your time and complete the submission steps in 1 week
We will be really appreciated if you are willing to spend more time to finish all bonus tasks.
You will build a simpler version of GitHub search console website so that users can browse & explore. This website includes following 3 pages
- Search Page
/
: User can type in username and show a list of users - Liked Page
/liked
: User can keep a list of liked users for future reference - User Detail Page
/users/:username
: User can know more about an individual user
This challenge is evaluated in following 3 aspects, User Story, Design Material and Technical Requirements.
Each aspect will have basic (required for submission) & bonus (optional) sections
Make sure you fully understand the requirements before proceeding
- As a user, I can search users based on
username
and view a list of user cards with pagination - As a user, within the list, I can see
username
,avatar
image,followers
count andfollowing
count on each card - As a user, I can like & unlike users while searching & browsing
- As a user, I can view a list of liked users (preserve after refreshing the browsers)
- As a user, I can view a specific user's information, including name, contact info, lists of
repositories
, list offollowers
& list offollowing
users.
- As a user, I can view & use this website via desktop as well as mobile
- As a user, I can copy & paste current website url and it will always show the same contents under the same browser
- As a user, I can search as I type without manually clicking a search button
CSS doesn't have to be pixel perfect, we are cool as long as the ratio doesn't look too different from the mock-up. Feel free to add more designs based on existed layouts & components.
- Please create the website following this design file on figma. Here we are using MUI for UI mock-ups.
- A default or fallback image will be better.
- Search Page will display pagination tab if needed (we will not enforce Liked Page)
- Loading, error, and empty states are properly handled
- Consume GitHub API
- This website must be built using React. React frameworks are welcome
- Redux is used for state management
- CSS-in-JS solutions will be highly preferred. Component libraries are also welcome (Here we are using MUI)
- This website is production ready and deployed with a url
- Write a
README.md
to explain how to set up local development & list down tools or libraries are used
- Written in TypeScript (please explain if
any
is used) - All pages are server-side rendered (can be static)
- Pay attention to user experience (UX) when fetching data from API, navigating between pages & loading large contents.
- Support dark mode
To submit, you are going to create a pull request that contains all the code changes. This pull request points to an empty branch that has oddle-hire-js as the reviewer and has the required information in the description (see step no. 8). For the detailed process, follow our step-by-step instructions:
- Create a private repository on your GitHub account
- Make sure you have a small initial commit e.g. could be this
README.md
file or any framework templates. - Code, commit and push as many times as you want.
- Create a branch named
submission
by checking out at the initial commit and continue your work on your working branch. - When it is ready for review, create a Pull Request with naming convention
[READY4REVIEW]
in your private repository based on your working branch merging towardssubmission
. - Invite oddle-hire-js as collaborator & reviewer to see your changes.
- Share a public website url deploying the latest version of your application
- In your pull request description, please add the following information:
- Full Name
- Email Address
- How did you know about this job
- Feedback on this assessment
- MUI
- GitHub Search Console
- GitHub API docs