Skip to content
This repository has been archived by the owner on Aug 26, 2020. It is now read-only.

Solution of MAGNUM81 #21

Open
wants to merge 44 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
9172212
Project setup
MAGNUM81 Jan 17, 2020
1c2e676
Merge branch 'magnum81/baseNodeProject'
MAGNUM81 Jan 17, 2020
4bc7a8c
added models and corresponding includes.
MAGNUM81 Jan 17, 2020
5c23691
renamed model files to PascalCase
MAGNUM81 Jan 17, 2020
a31df83
Created api service, updated models
MAGNUM81 Jan 17, 2020
cc96d41
work on ApiService "getAll"
MAGNUM81 Jan 20, 2020
52242ab
polished models and finished ExpensesApiService
Jan 21, 2020
c61d62b
added basic integration tests for the ExpensesApiService
Jan 21, 2020
da9c668
Merge branch 'magnum81/apiCalls'
Jan 21, 2020
2b9a2f0
added tslint and migrated all ts files to tsx files
Jan 21, 2020
3003cd5
created base react app using create-react-app
Jan 21, 2020
e59d3ad
added bootstrap CSS library
Jan 21, 2020
ab606a4
npm was all bamboozled
Jan 21, 2020
61a745d
moved models to client-pleo-expenses
Jan 21, 2020
87c6446
wip
Jan 21, 2020
734a083
Made base expenses list
Jan 22, 2020
6a7bcc3
Wip on navbar
Jan 22, 2020
7a367e0
TEST MAINTENANCE
Jan 22, 2020
4d4d2de
Some refactoring to ExpensesList and App
Jan 23, 2020
052ec8c
UI for filtering the list.
Jan 23, 2020
263d569
Merge branch 'magnum81/single-page-app'
Jan 23, 2020
ed62813
TEST MAINTENANCE
Jan 23, 2020
518b548
Client side filter works.
Jan 23, 2020
2f0bc58
Merge branch 'magnum81/expensesFiltering'
Jan 23, 2020
6ab9673
added axios, removed request
Jan 23, 2020
842edc5
added support for axios, modified tests accordingly
Jan 23, 2020
050cea7
improved ExpensesAPIService & tests
Jan 23, 2020
4e07037
Reworked layout and props passing
Jan 23, 2020
e663d12
Merge branch 'magnum81/axiosApiCalls'
Jan 23, 2020
f189a74
removed useless comment.
Jan 23, 2020
dcc8e71
updated libraries
Jan 24, 2020
71173eb
Added support for modal window call from child-components.
Jan 24, 2020
f053551
Added full support for frontend comment editing
Jan 24, 2020
6b70fb4
Refactored state change (duplicated code)
Jan 24, 2020
d277cbe
Reformatted most files.
Jan 24, 2020
480e869
Merge branch 'magnum81/addComment'
Jan 24, 2020
1a0ffc7
added support for visualizing a picture using the modal window.
Jan 24, 2020
0be6ea0
TEST MAINTENANCE
Jan 24, 2020
7874346
Attempt to upload picture and comment
Jan 24, 2020
8124d8b
Merge branch 'magnum81/addAndVisualizeImage'
Jan 24, 2020
f6a21e7
code reformating
Jan 24, 2020
996de56
Added Post-Mortem
Jan 24, 2020
e42f445
fixed top-level gitignore
Jan 24, 2020
d14a8e4
Merge pull request #20 from MAGNUM81/master
heaventw Apr 30, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea/
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,44 @@ Want to go the extra mile? Here's few suggestion of things we'd like to see (or
## A few last things 👇
- Please note that while you are free to use libraries of your choosing, we encourage you to write at least some your own code. This is your chance to really impress us with your skills.
- You are welcome to make changes to the API code if you think it will improve your solution

### Post-Mortem

This has been a fun challenge, and I must now put it to an end. <br/>

#### How to start the project

- run `npm install` from `./client-pleo-expenses`
- run `npm start` from `./client-pleo-expenses`

<b>Note : </b> It is suggested to start the API beforehand in another window using those commands, but from the `./api` folder.

#### Implemented features
- user can list some expenses, limited to 25 for now. <br/>
(I believe there are some libraries out there that handle progressive loading better than I do.)

- user can filter the expenses through client-side filters (very proud of this one!)

- user can add a comment to an expense (the API is kept posted about that, too!)

- user can add a (random) picture to an expense (the API is kind of in-the-dark with this one)

- user can visualize an added picture (bigger size) in a modal window by clicking on the picture

#### Notes
- I have learned a lot about Javascript, Typescript, React and more during this challenge, <br/>
and I am truly impressed by the power and versatility of that ecosystem.<br />

- Considering the time (~25h) and effort put into this challenge, I believe that this is a very good start <br/>
and I would love to see actual, production-grade code using these tools.

- I am proud of what I accomplished, but I am also very aware that it is not the most efficient, <br/>
TS-savvy frontend code written in history.

- My lack of generic knowledge about JS & TS frameworks definitely hindered my productivity.

- My google operational research skills definitely favored my performance, though! <br/>
(Look for comments scattered across the code, saying `strongly inspired from X` and the like.)



Loading