Project Description
The developed API, constructed on Django Rest Framework (DRF), serves the primary function of creating financial reports for businesses using the fortnox.se platform. This sophisticated system is capable of interacting with third-party APIs, generating PDF files, and implementing Google registration/authorization.
The system is versatile, accommodating two distinct user roles: managers and administrators. Depending on the role, users are granted varying degrees of access and control over the functionalities.
In terms of technology, the system leverages an extensive toolkit, each contributing to the overall efficiency and effectiveness of the service. Below are the technologies utilized:
Backend Framework and Environment:
- Django: A high-level Python framework that encourages rapid development and pragmatic design.
- Docker: An open platform for developing, shipping, and running applications, ensuring consistent environments.
API and Filtering:
- Djangorestframework: A powerful and flexible toolkit for building Web APIs.
- Django-filter: A generic system for filtering Django QuerySets based on user selections.
- Coreapi: A format-independent Document Object Model for representing Web APIs.
Google Services:
- Google-api-python-client: The official Python client library for Google's discovery-based APIs.
- Oauth2client: A library for client-side OAuth 2.0.
PDF Generation:
- Reportlab: Allows rapid creation of rich PDF documents.
- Pdfkit: A Python wrapper for Wkhtmltopdf, making it easy to convert HTML to PDF.
- Pypdf2: A library capable of splitting, merging, and transforming PDF pages.
PDF Generation:
- Reportlab: Allows rapid creation of rich PDF documents.
- Pdfkit: A Python wrapper for Wkhtmltopdf, making it easy to convert HTML to PDF.
- Pypdf2: A library capable of splitting, merging, and transforming PDF pages.
Concurrency and HTTP:
- Gevent: A coroutine-based Python networking library for building concurrent applications.
- Gunicorn: A Python WSGI HTTP Server for UNIX, light and speedy.
- Httplib2: A comprehensive HTTP client library.
Database and JSON:
- Psycopg2-binary: A PostgreSQL adapter for Python.
- Simplejson: A simple, fast, extensible JSON encoder/decoder.
Cross-Origin Resource Sharing:
- Django-cors-headers: A Django App that adds Cross-Origin Resource Sharing (CORS) headers to responses.
Scheduling and Task Management:
- Celery: An asynchronous distributed task queue/job queue.
- Redis: An open-source in-memory data structure store used as a database, cache, and message broker.
- Django-crontab: A Django app that keeps track of cron jobs for Django apps.
- Django-extensions: A collection of custom extensions for Django.
Two-Factor Authentication:
- Django-two-factor-auth: A complete Two-Factor Authentication for Django.
- Django_otp: A pluggable framework for adding two-factor authentication to Django using one-time passwords.
Additional Django Tools:
- Markdown: A Python implementation of the popular Markup language, Markdown.
- Django-extensions: A collection of custom extensions for the Django Framework.
Date and Time:
- Python-dateutil: Extensions to the standard Python datetime module.