Python Backend Flask Rest API

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

A little about the project:

When the project is complete, it will be a backend Python3-flask Rest API hosted
on an Ubuntu Ec2 instance that regularly pulls invoices and stores them in a
Postgres database.

Work involved:
Enhance the SAAS'S rest-starter-pack git hub repo by adding features that can
perform the following:
● Keep its current functionalities
● After the program's first user-initiated authorisation and authentication, a
scheduled cronjob periodically runs it
● Parses the JSON invoice object and inserts it into two or three related
tables with at least one common field
● Apart from python-restapi-Flask configured logs, the program adds logs
about the scheduled runs and about the metadata handled
● Only handles 'get' on invoices endpoint with a where parameter that is
hardcoded in the py script
I will provide the config.py when you accept the job
Links:
● https://github.com/XeroAPI/xero-python-oauth2-starter
● https://developer.xero.com/documentation/api/accounting/invoices/#get-
invoices
● https://www.youtube.com/watch?v=i8JWtbMo90M

About you:
You are a Python developer passionate about backend development and
have experience with Rest APIs. Considering most of the code-base has
been supplied, you find this easier, irrespective of whether you may or
may not have done this in the past.

Expected from you:


Complete the job on your local machine and prove to me that it works by
demoing it. Add the necessary SQL and shell scripts to the repo and push
it to GitHub so I can create and produce it on my ec2 instance. After this,
you can advise me on best security practices and industry practices for
the program's sustainability.

Use-case:
There are only seven invoices in the demo copy on the xero accountig
system. The program would save these seven invoices repeatedly based
on a schedule. This is simply to demonstrate the program's functionality.
When in production, the where parameter will be replaced by 'datetime',
so only newly created invoices are added. Objects like journals, contacts,
accounts, and their postgres table equivalents will get added to the
production environment.

Bigger Picture:
This project is part of a bigger integration project that pulls CRM,
accounting, payroll, HRIS, and operations data across various SAAS
software that another financial planning tool relies on. This work will form
a proof of concept for financial planning solutions

You might also like