Skip to content

Currency Exchange app with NBP API. Backend: C#, ASP.net, EF, Refit, Vertical slice architecture, Docker, PostgreSQL. Mobile app: TypeSctipt, React, VitePWA, React Native, Expo, Jotai

Notifications You must be signed in to change notification settings

gitEugeneL/NBP-CurrencyExchangeApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NBP-CurrencyExchangeApp

This is a currency exchange application utilizing the NBP API.

The project comprises:

  • ASP.NET server for backend functionalities,
  • React Native mobile application,
  • React PWA application.

👷 Frameworks, Libraries and Technologies

Backend

Mobile client

PWA Client

🐳 List of docker containers

  • api.app - container for all application layers

  • api.database - postgresql database container

🏦 API integrations

  1. NBP Web API. Currency exchange rates and gold prices (National Bank of Poland)

    https://api.nbp.pl/en.html

🚜 How to run the server

  1. Build and start Docker images based on the configuration defined in the docker-compose.yml

     make up  # docker-compose up --build
  2. Stop and remove containers

     make down  # docker-compose down
    

⛵ How to run the mobile client

First of all you need to install Android Studio and create a virtual android device. You should also have node.js installed on your device.

  1. Install the necessary dependencies in the project

     npm i
  2. Start the Expo server

     npm start
  3. Run the application in the android emulator

     a  # the application will automatically be launched in the virtual device

⛵ How to run PWA client (dev environment)

  1. Install the necessary dependencies in the project

     npm i
  2. Start the Vite server

     npm run dev

🔐 Local access (backend)

container port login password GUI
api.database 5432 user password -
api.app 8000 - - http://localhost:8000/swagger/index.html

🖨️ Swagger documentation

  1. Swagger UI

     http://localhost:8000/swagger/index.html
    
  2. Swagger static file

      https://github.com/gitEugeneL/NBP-CurencyExchangeApp/blob/dev/Server/swagger.json
    

🎡️ Mobile client screenshots

login registration registration confirm
drawer wallets list your wallets
create a wallet add money withdraw
tracker tracker tracker
buy currency tracker buy euro
sell GBR transaction list transactions
login validator registration validator add money validator
withdraw validator buy currency validator sell currency validator

💾 Database diagram

Database diagram

About

Currency Exchange app with NBP API. Backend: C#, ASP.net, EF, Refit, Vertical slice architecture, Docker, PostgreSQL. Mobile app: TypeSctipt, React, VitePWA, React Native, Expo, Jotai

Topics

Resources

Stars

Watchers

Forks