The job description
We have a project management like software where clients can login, create projects, milestones and related activities and manage the same.
You have to work on the backend / existing web api (DRF, Django, Python, Postgres) to support frontend application features and test the frontend to ensure that there are no bugs.
The existing code base
• Existing code base is mostly boiler plate code generated using Django and Django Rest framework and uses SQLite.
• There are around 15 master database tables and same number of models, serializers and views
• Django is just used for its admin interface and for backend web services.
• Front end / vue application development is not in your scope.
Expectations from you
1. Work independently and come up with solutions for the below requirements, provide fixed time and cost for the same.
2. coordinate with frontend developer and analyst
3. test the entire application after every deploy and report bugs.
4. Write unit tests for developed functions
5. Write code compliant with DRY/KISS/YAGNI principles and with proper comments and documentation
6. Use Git regularly and Check-in code to central git repository after every milestone
7. Deploy backend to server after milestones and bug fixes
8. Stick to schedule, provide regular progress updates and participate in daily 15 minutes call
9. Check with us and get approval before using any third party libraries and ensure they allow commercial use
10. We will not be paying any kind of advance or down payment before you begin
Milestones for Phase 2
1. Build Web API & Django Admin for Activity management feature
Understand and Modify existing Django web api and Admin code base to support activity management functions which include:
a. CRUD and Drag drop support between stages, activities, tasks, goals
b. Other features discussed with you regarding the same and in the attached PDF document
c. Build a bulk crud API for the same to minimize API requests
d. Accommodate 20% change management
e. Coordinate with frontend developer
f. Test application to ensure it works without any defects
g. Same to be completed within a timeline decided by you of 10 days
2. Enhance existing code base:
Complete the below tasks.
1. Comment existing code
2. Add bulk editing API
3. move db from sqlite to postgres
4. Limit user edits
5. rate limiting at web service level
6. add default behavior to all apis to query by relations like filter by user_id, isMaster, etc. search by name/number, limit to last x records
7. Secure API - token auth
8. Write script to Backup code and database periodically in password protected zip file on another server
9. Rename existing directories/project name
10. Refactor existing code for DRY principle
11. Enhance existing unit tests
12. Write DRF based unit tests
13. setup cloudflare for CDN and DDOS mitigation
14. setup bug list/wiki/CI using bitbucket/Github/Gitlab and proper security controls
15. Write script to deploy frontend to production
16. Add logging
3. Build Web API for Account management feature
create account, forgot password, verify email, first time password reset
4. Build Web API for customer management feature
5. Build Web API for map feature