This application is a currency exchange application. It was built in a way that imagining it would be used by a exchange office cashier.
Under early development. This was done for an interview, I will still keep developing it as my Public Github is pretty much empty & I want to have a nice public project.
- Docker (with WSL2.0 Opt on Windows)
- Composer (Run composer from local machine, and Laravel commands from container)
- Pull the project.
- Run composer install
- Run ./vendor/bin/sail up to get Docker Container running
- Set your .env file according to your needs. (Don't forget to set Exchange Api Url & Key)
- Run ./vendor/bin/sail artisan migrate
- Run ./vendor/bin/sail artisan currency:sync
- Go localhost (or where you are hosting depending on your docker-compose.yml)
- Click "REGISTER" on top right side, register & login to your account.
- Viola! You are on the dashboard!
Your phpunit.xml file should have an API key.
- More unit tests
- What I would like to improve: more functions need to be unit tested
- How I would like to improve and why: I need to focus on TDD more.
- What I would like to improve: more functions need to be unit tested
- The application cannot handle provider errors well.
- What I would like to improve: Better response handling
- How I would like to improve and why: ExchangeRatesIO service sometimes timeouts, or the app itself has sync issues. I need to focus more on response & exception handling.
- What I would like to improve: Better response handling
- SyncCurrencyTest is not sufficient
- What I would like to improve: Data mocking on test
- How I would like to improve and why: Even though this will not prevent the app from running, on initial setup, that function is critical. So proper unit test needs to be rewritten.
- What I would like to improve: Data mocking on test
- Transaction table's amount column's decimal(15,2) is not sufficient
- What I would like to improve: To be able to save transactions for BTC safely
- How I would like to improve and why: bigger decimal point but a memory efficient column data size
- What I would like to improve: To be able to save transactions for BTC safely
- A good UI
- What I would like to improve: The UI in general. Also I cannot show errors on UI.
- How I would like to improve and why: Maybe pulling every request to Ajax version. To do this, I need to improve my frontend knowledge
- What I would like to improve: The UI in general. Also I cannot show errors on UI.