-
Get this app to work
Installed the basic requirements and packages
-
Change the database config to use PostgreSQL
Added the required packages and settings to enable Django connect to PostgreSQL
-
Config settings for dev, staging and production servers
Changed the settings by creating a python module and splitted the settings in to the afformentioned environment based on the specific setting for each envorinment
-
Add Two(2) security updates to the settings file
Removed hardcoded SECRET_KEY.
Added an env file to segregate the settings that changes based on environment and to avoid pushing sensitive settings to version control systems(VCS).
Added SECURE_SSL_REDIRECT, SESSION_COOKIE_SECURE, CSRF_COOKIE_SECURE and SECURE_BROWSER_XSS_FILTER for production environment
A Django app has been created under /apps/
called crm
-
Configure this app to work with the main project
Fixed The BASE_DIR setting to match the actual directory traversion
Installed the app in the INSTALLED_APPS settings
Fixed The database migration conflict by making the base model abstract
-
Two models has been created for you: "Client" and "ClientWallet":
a. Write a CRUD option with the Client ModelAdded Two(2) app menus: Dashboard and Clients. The Clients contains the CRUD operations.
b. Write a PUT/POST option for the Client Wallet model (i.e ability to fund a particular client's wallet)
The Clients's Detail page contains a sub-section with the client wallet information. Added a link to fund the client's wallet
c. Write/Configure API endpoints to fetch client (including their wallet balance)
Added two(2) endpoints:
/api/(for listing of the available endpoints with their appropriate verb),
/api/clients (for fetching the lists of clients with their appropriate wallet balance)
/api/clients/{id} (for fetching of a particular client with their appropriate wallet balance)
N:B You are to design an appropriate frontend for task in a & b above using Django Template
-
Set-up a web socket for the client wallet model
Added a websocket that updates the client's wallet balance in realtime whenever the balance gets updated
-
Write a background task that populates the Client model with users from this endpoint. This task should run every hour.
Added a scheduler that populates the client model with users. Figured the endpoint contains duplicate records but exceptions have been contained
-
Deploy your code to any of these cloud servers (A.W.S, Google Cloud, Azure or Heroku)
Deployed to AWS servers. Link Here
*** Optional
- Configure Docker for this project
Dockerized the application and configured docker-compose to run various services of the application