Skip to content

An API for recording financial transactions and viewing the transaction history.

Notifications You must be signed in to change notification settings

ngecu/alva-labs-transaction-management-backend-lii-83ahc-6j331i

Repository files navigation

Transaction Management Backend - LII

Your task is to build a backend app that allows the recording of financial transactions and viewing the transaction history.

It should implement the Transaction Management API specification, which is defined in the Open API format.

You are free to use any Tech Stack of your choice but using Ruby is an added advantage.

Additional requirements

  • Do your best to make the provided E2E tests pass.
  • Keep server data in a SQLite database. We want to see how you design the database schema and SQL queries.
  • Avoid duplication and extract re-usable modules where it makes sense. We want to see your approach to creating a codebase that is easy to maintain.
  • Unit test one module of choice. There is no need to test the whole app, as we only want to understand what you take into consideration when writing unit tests.

Getting started

If you run into a problem

Navigate to our community on GitHub to get assistance.

Import a starter project

We have created a set of starter projects with different tech stacks to help you get started quickly.

To import a starter project:

  1. Go to the "Actions" tab of your GitHub repository and select the "Setup boilerplate" workflow in the left side panel.
  2. In the "Run workflow" dropdown, select the desired boilerplate along with the branch name where you want the boilerplate to be imported (e.g., implementation) and click the "Run workflow" button (you can find all starter projects' definitions here).

After the workflow has finished, your selected boilerplate will be imported to the specified branch, and you can continue from there.

⚠️ Custom setup

If you instead want to set up a custom project, complete the steps below to make the E2E tests run correctly:

  1. Update the baseUrl (where your frontend runs) in cypress.config.js.
  2. Update the build and start scripts in package.json to respectively build and start your app.
Prepare for coding

To get this repository to your local machine, clone it with git clone.

Alternatively, spin up a pre-configured in-browser IDE by clicking on the "Code" tab in this repository and then "Create codespace on {branch_name}".

CleanShot 2023-10-13 at 00 00 32@2x

Running the E2E tests

⚠️ Before executing the tests, ensure Node is installed and your app is running.

npm install
npm run test

Submitting your solution for review

  1. Create a new implementation branch on this repository and push your code there.
  2. Create a new pull request from implementation WITHOUT MERGING IT.
  3. Indicate in your PR whether your tests are all passing or not (IMPORTANT).
  4. Indicate in your PR which module you have unit tested.
  5. Document the tech decisions you've made by creating a new review on your PR (see how).
  6. Await further instructions from the hiring team.

Time estimate

Between 2 - 3 hours + the time to set up the project/environment (we suggest importing one of the provided project starters to save time).

However, there is no countdown. The estimate is for you to plan your time. Keep in mind that how long you take to complete the assesment plays a part in your evaluation.


Authored by Alva Labs.

About

An API for recording financial transactions and viewing the transaction history.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published