Django Application Developer - Beirut
The IRC and IRC workers must adhere to the values and principles outlined in IRC Way - Standards for Professional Conduct. These are Integrity, Service, and Accountability. In accordance with these values, the IRC operates and enforces policies on Beneficiary Protection from Exploitation and Abuse, Child Safeguarding, Anti Workplace Harassment, Fiscal Integrity, and Anti-Retaliation.
Please submit your application before 09 June 2023 https://rescue.csod.com/ux/ats/careersite/1/home/requisition/42138?c=rescue
Only shortlisted candidates will be contacted.
Applications by email will NOT be considered.
The Livelihood Information Management System (LIMS) is a custom-built, Django/Python-based case management system created by the Lebanon Economic Recovery and Development (ERD) team within the IRC. This information management system facilitates the work of staff at the livelihood centers and integrates grant and service specific programmatic, monitoring and evaluation data.
The purpose of the ToR is to outline the requirements for an experienced individual to provide technical expertise in updating and maintaining an existing Django application. The application is currently published on the web and requires updates, bug fixing, and implementing new features. The source code is available on GitHub, and the developer will be responsible for managing the development and deployment process.
IRC has an existing Django application that serves as a platform for data management and analysis. The application includes several modules: Admin page, user management page, dashboard/report page, report builder page, custom export and filters.
The application is currently published on the web and used by employees across different departments. The application requires regular updates and maintenance to ensure its functionality and to meet the evolving needs of the organization. The selected candidate will be responsible for providing technical expertise in updating and maintaining the application and ensure the integration with other data collection platforms like CommCare and ONA is working smoothly.
Scope of Work
The selected candidate will be required to provide the following services:
- Review the existing source code and documentation to understand the current state of the application.
- Setup and configure a local development environment to run the application locally.
- Setup and configure local PostgreSQL application to run the application with data locally.
- Run and modify Celery scheduling services.
- Modify the code to fix existing bugs and add new features.
- Bug fixing or new features can be related to displaying reports, modifying filters, enhance report builder.
- Add new Integration with CommCare data collection tool, create new Sync Service for CommCare in the application, using CommCare APIs.
- Modify/Update existing Integration with ONA data collection tool Sync Service using ONA APIs.
- Work with the regional IT office to coordinate the deployment of the updated application to the hosted version on the web.
- Provide ongoing maintenance and support for the application, including troubleshooting issues and fixing bugs.
- Other duties as requested by the process owner.
The selected candidate will be responsible for delivering the following:
- A detailed report outlining the updates and modifications made to the existing application.
- Updated source code with the new features and bug fixes implemented.
- A documentation detailing the process for running the application locally and deploying the updated version to the web.
- Ongoing maintenance and support for the application, including regular updates and bug fixing.
- The project timeline will be agreed upon by the selected candidate and IRC.
- The selected candidate should provide a proposed timeline for the project based on the scope of work and deliverables outlined above.
Candidates Recommended Qualifications
To successfully perform the tasks of getting code from GitHub, setting up the development environment, installing and connecting with PostgreSQL, publishing online, and updating the version on GitHub, a Django developer should possess the following skills:
- Git version control system: The developer should have a strong understanding of Git and know how to work with Git commands such as cloning repositories, creating branches, and merging changes.
- Django development: The developer should have extensive experience with Django and be able to read, understand and modify existing Django code.
- Python programming: The developer should have a strong understanding of the Python programming language and its syntax and be able to write Python code to modify the Django application.
- PostgreSQL database management: The developer should be able to setup, configure and manage a PostgreSQL database and understand how to connect the Django application to the database.
- npm: The developer should have experience using npm (Node Package Manager) and be familiar with common npm commands such as installing, updating, and removing packages.
- pip: The developer should have experience using pip (Python Package Installer) and be familiar with common pip commands such as installing, updating, and removing packages.
- Command-line interface: The developer should be proficient in working with the command-line interface to navigate the system and execute commands.
- API development: The developer should have experience in building and working with APIs & Django, including how to read data from external sources.
- Familiarity with CommCare: The developer should have an understanding of CommCare and its API. This includes the ability to authenticate and read data from the CommCare API.
- Data integration: The developer should be able to integrate the CommCare API with the Django application, including the ability to parse and store the data in the appropriate format.
- Web deployment: The developer should have experience in deploying web applications to hosting platforms and be able to publish/re-publish the application online.
- Troubleshooting and debugging: The developer should have strong problem-solving skills and be able to troubleshoot issues that arise during the development and deployment process.
- Excellent communication skills: The developer should be able to communicate effectively with the regional IT office to coordinate the deployment of the updated application to the hosted version on the web.
The developer will play a critical role in updating and maintaining the company's existing Django application. The successful candidate should have extensive experience in Database, APIs, and Django application development and deployment. Also, to have excellent communications skills to be able to work collaboratively with the regional IT office.