Create a mobile app and a containerized application with two services (backend, database) as follows:
The solution should start after cloning the repo and giving the docker-compose up command. The mobile app should be able to fetch data from the backend. Stopping the backend solution with Ctrl+C or docker-compose down should gracefully stop the services, and the mobile app should display that the backend is not available anymore. Provide instructions on how to run the mobile app.
- Is developed using Node.js, express and sequelize.
- Contains 5 endpoints that could be tested using Swagger or a REST client (.rest file)
- Get the list of books - gets the books from the database
- Get one book by id - gets one book with the matching id from the db
- Update one book by id - updates the title of the book by the given id
- Create a new book - inserts a new book into the db
- Delete a book by id - removes the book from the db
- Swagger endpoint: http://localhost:13000/docs
- Database used is Postgres
- The database has one table listing books. The books have two columns/properties: an id and a title. When starting the solution, the database already have a few entries (seed.js).
- You need a docker installed
- After cloning the project, go to backend folder and run:
-
- docker compose up -d
- Using Jetpack Compose
- Create an emulator or connect a device using the same computer network
- Open the mobile/app folder in Android Studio and click to run the project
- Or use a command line to build and install app:
-
- gradlew installDebug
-
- adb install path/to/your_app.apk
- Note: use ifconfig or ipconfig to get the correct ip address of your computer and update it in the app/src/main/java/com/example/books/data/RetrofitClient.kt file
Retrofit.Builder()
.baseUrl("http://192.168.1.78:13000/")![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- Backend
-
- Migrate backend node.js to Typescrypt
-
- Add JWT Authentication
- Mobile
-
- Use strings to internationalize messages
-
- Save search books in a local database (datastore, shared preferences)
-
- Migrating Retrofit to Ktor to use KMM and test iOS version
- npm install -D typescript @types/node @types/express
- npx tsc -v (check if installed)
- npm install -D typescript @tsconfig/node22
- npm install --save-dev ts-node typescript





