Skip to content

Latest commit

 

History

History
80 lines (50 loc) · 2.24 KB

README.md

File metadata and controls

80 lines (50 loc) · 2.24 KB

Fyle Backend Challenge

Who is this for?

This challenge is meant for candidates who wish to intern at Fyle and work with our engineering team. You should be able to commit to at least 6 months of dedicated time for internship.

Why work at Fyle?

Fyle is a fast-growing Expense Management SaaS product. We are ~40 strong engineering team at the moment.

We are an extremely transparent organization. Check out our careers page that will give you a glimpse of what it is like to work at Fyle. Also, check out our Glassdoor reviews here. You can read stories from our teammates here.

Challenge outline

You are allowed to use any online/AI tool such as ChatGPT, Gemini, etc. to complete the challenge. However, we expect you to fully understand the code and logic involved.

This challenge involves writing a backend service for a classroom. The challenge is described in detail here

What happens next?

You will hear back within 48 hours from us via email.

Installation

  1. Fork this repository to your github account
  2. Clone the forked repository and proceed with steps mentioned below

Install requirements

virtualenv env --python=python3.8
source env/bin/activate
pip install -r requirements.txt

Reset DB

export FLASK_APP=core/server.py
rm core/store.sqlite3
flask db upgrade -d core/migrations/

Please be aware that resetting the database could cause some tests to fail. This could be due to the absence of expected data or the presence of incorrect data as per the test setup.

Start Server

bash run.sh

Docker Setup

Before you can build and run the Docker container, make sure you have Docker Desktop installed and the Docker daemon is running.

To build and run the container, use the following command:

docker-compose up

The application will be accessible at localhost:5000.

Local Machine Setup (Windows)

To run the application on your local machine, use the following command:

python run.py

Run Tests

pytest -vvv -s tests/

# for test coverage report
# pytest --cov
# open htmlcov/index.html