Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit c3a3c4e

Browse files
committed
(chore): verification guide
1 parent d210cc4 commit c3a3c4e

23 files changed

+126
-14
lines changed

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Topcoder Teams Microapp
1+
# Topcoder Teams Micro-app
22

33
This is a [single-spa](https://single-spa.js.org/) example React microapp.
44

5-
> NOTE. This application have been configured to be run as child app of a single-spa application. So while this app can be deployed and run independently, we would need some frame [single-spa](https://single-spa.js.org/) which would load it. While technically we can achieve running this app as standalone app it's strongly not recommended by the author of the `single-spa` approch, see this [GitHub Issue](https://github.com/single-spa/single-spa/issues/640) for details.
5+
> NOTE. This application have been configured to be run as child app of a single-spa application. So while this app can be deployed and run independently, we would need some frame [single-spa](https://single-spa.js.org/) which would load it. While technically we can achieve running this app as standalone app it's strongly not recommended by the author of the `single-spa` approach, see this [GitHub Issue](https://github.com/single-spa/single-spa/issues/640) for details.
66
77
## Requirements
88

@@ -51,12 +51,16 @@ Inside the project folder run:
5151

5252
### Deploying to Heroku
5353

54-
Make sure you have [Heroky CLI](https://devcenter.heroku.com/articles/heroku-cli) installed and you have a Heroku account. And then inside the project folder run the next commands:
54+
Make sure you have [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) installed and you have a Heroku account. And then inside the project folder run the next commands:
5555

56-
- If there is not Git repository inited yet, create a repo and commit all the files:
56+
- If there is not Git repository initiated yet, create a repo and commit all the files:
5757
- `git init`
5858
- `git add .`
59-
- `git commit -m'inital commit'`
59+
- `git commit -m 'initial commit'`
6060
- `heroku apps:create` - create Heroku app
6161
- `git push heroku master` - push changes to Heroku and trigger deploying
62-
- Now you have to configure frame app to use the URL provided by Heroku like `https://<APP-NAME>.herokuapp.com/topcoder-micro-frontends-teams.js` to load this microapp.
62+
- Now you have to configure frame app to use the URL provided by Heroku like `https://<APP-NAME>.herokuapp.com/topcoder-micro-frontends-teams.js` to load this micro-app.
63+
64+
## Verification
65+
66+
Please check [verification-guide.md](verification-guide.md)

docs/data-demo.png

457 KB
Loading

docs/data-no-members-positions.png

148 KB
Loading

docs/data-rating-decimal.png

11.7 KB
Loading

docs/data-rating-empty.png

9.71 KB
Loading

docs/data-rating-full.png

9.89 KB
Loading

docs/data-remaining-time.png

57.7 KB
Loading

docs/data-weekly-cost.png

27.6 KB
Loading

docs/filter-combine.png

174 KB
Loading

docs/filter-first-name.png

75.8 KB
Loading

docs/filter-handle.png

221 KB
Loading

docs/filter-last-name.png

116 KB
Loading

docs/filter-role.png

71.9 KB
Loading

docs/filter-skill.png

78 KB
Loading

docs/no-candidates.png

207 KB
Loading

docs/no-end-data.png

40.6 KB
Loading

docs/pagination.png

271 KB
Loading

docs/popover-skills.png

216 KB
Loading

docs/popover-three-dots.png

239 KB
Loading

docs/rate-convertion.png

2.02 MB
Loading

docs/text-overflow-list.png

292 KB
Loading

docs/text-overflow.png

708 KB
Loading

verification-guide.md

Lines changed: 116 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Before running the apps, add into your `/etc/hosts` the `line 127.0.0.1 local.to
1111
Run each of 3 applications and Mock API server in a new terminal window.
1212

1313
1. Run **micro-frontends-frame** app (provided on forum and updated):
14+
1415
```bash
1516
cd micro-frontends-frame
1617

@@ -22,6 +23,7 @@ Run each of 3 applications and Mock API server in a new terminal window.
2223
This would host the **frame** app on http://local.topcoder-dev.com:3000/.
2324

2425
2. Run **micro-frontends-navbar-app** app (provided on forum and updated):
26+
2527
```bash
2628
cd micro-frontends-navbar-app
2729

@@ -32,9 +34,9 @@ Run each of 3 applications and Mock API server in a new terminal window.
3234

3335
This would host the **navbar** app on http://local.topcoder-dev.com:8080/topcoder-micro-frontends-navbar-app.js (cannot open outside frame).
3436

35-
3. Run **micro-frontends-teams** app (created in this challenge)
37+
3. Run **micro-frontends-teams** app (this app)
38+
3639
```bash
37-
cd micro-frontends-teams
3840

3941
npm install
4042

@@ -44,8 +46,9 @@ Run each of 3 applications and Mock API server in a new terminal window.
4446
This would host the **teams** app on http://local.topcoder-dev.com:8501/topcoder-micro-frontends-teams.js (cannot open outside frame).
4547

4648
4. Run Mock API server:
49+
4750
```bash
48-
cd micro-frontends-teams/local/mock-server
51+
cd local/mock-server
4952

5053
npm install
5154

@@ -56,28 +59,133 @@ Run each of 3 applications and Mock API server in a new terminal window.
5659

5760
## Verification
5861

62+
### Browser Support
63+
64+
Open listing page http://localhost:3000/taas/myteams and details page http://localhost:3000/taas/myteams/1 in the latest Chrome, Safar, FireFox and Edge browsers.
65+
66+
### Responsiveness
67+
68+
To verify that UI is fluid and don't get broken on any screen size, change the width of the browser from the biggest width until `320px`.
69+
70+
- See that UI adapts to any screen size, it's not getting broken and still shows data nicely.
71+
72+
### Data Variations
73+
74+
UI outputs and formats various data. We have to make sure, that all the supportable values are displayed and formatted correctly including extremely small, big and average.
75+
76+
#### Weekly Cost
77+
78+
Should format money with 1 digits, 3 digits, 4 digits and many digit like 9, for example:
79+
80+
![](docs/data-weekly-cost.png)
81+
82+
#### Remaining Time
83+
84+
Remaining time should handle situations when we have less than 1 week left or if time is already passed:
85+
86+
![](docs/data-remaining-time.png)
87+
88+
#### Rating
89+
90+
Star rating should handle edge cases like: full rating, zero rating and also ratings which have decimal points like `3.38`. Each of the teams demonstrate some of these cases:
91+
92+
- http://localhost:3000/taas/myteams/1
93+
94+
![](docs/data-rating-full.png)
95+
96+
- http://localhost:3000/taas/myteams/3
97+
98+
![](docs/data-rating-decimal.png)
99+
100+
- http://localhost:3000/taas/myteams/4
101+
102+
![](docs/data-rating-empty.png)
103+
104+
#### No members or positions
105+
106+
UI should handle gracefully, the situation when team doesn't have any members or positions. This is demonstrated by the 4th team http://localhost:3000/taas/myteams/4:
107+
108+
![](docs/data-no-members-positions.png)
109+
110+
### Dropdown/Tooltips and browser boundaries
111+
112+
All the dropdowns and tooltips should respect browser boundaries and adjust their position when there is not enough space.
113+
114+
Team menu should slightly move when we open it on the last team near the browser scrollbar:
115+
116+
![](docs/popover-three-dots.png)
117+
118+
Skills tooltip should open to the top, when we hover "more" link near the bottom edge of the browser, because there is not enough space below.
119+
120+
![](docs/popover-skills.png)
121+
122+
### Text Overflow
123+
124+
As UI outputs user generated data sometimes it may have unexpectedly long texts. We have to make sure, that UI is not getting broken and handles such cases nicely. For this purpose I've created 3rd team with very long texts.
125+
Open http://localhost:3000/taas/myteams/3 for verification.
126+
127+
- Resize browser to check that it's not broken on any resolution.
128+
- Note, that I've tried long texts **without spaces** and **with spaces**.
129+
130+
![](docs/text-overflow.png)
131+
132+
![](docs/text-overflow-list.png)
133+
134+
### Members list filtering
135+
136+
Open page with the first team http://localhost:3000/taas/myteams/1.
137+
138+
Let's check filter by each of the supported fields:
139+
140+
- **handle** Enter `con`:
141+
142+
![](docs/filter-handle.png)
143+
144+
- **firstName** Enter `liza`:
145+
146+
![](docs/filter-first-name.png)
147+
148+
- **lastName** Enter `Unknown`:
149+
150+
![](docs/filter-last-name.png)
151+
152+
- **role** Enter `des`:
153+
154+
![](docs/filter-role.png)
155+
156+
- **skill** Enter `react`:
157+
158+
![](docs/filter-skill.png)
159+
160+
- **combination of fields** Enter `re`:
161+
162+
![](docs/filter-combine.png)
163+
164+
### Job detail
165+
59166
For verification, please use **Team Name 001** http://local.topcoder-dev.com:3000/taas/myteams/1 which has good positions demo data.
60167

61-
![](verification-guide/data-demo.png)
168+
![](docs/data-demo.png)
62169

63170
For example of no candidates use **TEAM_WHICH_WILL_DO_EVERYTHING_TO_BREAK_YOUR_CSS** http://local.topcoder-dev.com:3000/taas/myteams/3/positions/32
64171

65-
![](verification-guide/no-candidates.png)
172+
![](docs/no-candidates.png)
66173

67174
## Notes
68175

69176
1. Rate in positions: `hourly`, `daily`, `weekly` and `monthly`. As UI doesn't mention units, for consistency I convert all the rates to `weekly` rate and show it everywhere for consistency.
70177

71-
![](verification-guide/rate-convertion.png)
178+
![](docs/rate-convertion.png)
72179

73180
2. In the Swagger file users have a field `photo_url` with avatar photo. Though previously we implemented a method to get user avatar by `userId`, so I'm keeping using that method of getting avatar by `userId`. As a result:
181+
74182
- I didn't add `photo_url` to mock API
75183
- I've added `userId` to mock API so I can use real Topcoder API to get user photo
76184

77185
3. Where is not end date, we have to show `TBD` in the `Start - End Date` field. Additionally, I show `N/A` in the **Time Remaining** if there is no `endDate`:
78186

79-
![](verification-guide/no-end-data.png)
187+
![](docs/no-end-data.png)
80188

81189
4. When all the candidates can be shown on one page I still showing disabled `Show more` and page `1` so when we change filters there is less jumping for UI consistency:
82190

83-
![](verification-guide/pagination.png)
191+
![](docs/pagination.png)

0 commit comments

Comments
 (0)