{"id":18869310,"url":"https://github.com/codersales/following-django-proj-crm-app-tutorial","last_synced_at":"2026-05-01T18:31:57.644Z","repository":{"id":186297804,"uuid":"674948604","full_name":"CoderSales/Following-Django-Proj-CRM-App-Tutorial","owner":"CoderSales","description":"Following a Django Tutorial to Build a CRM App Tutorial","archived":false,"fork":false,"pushed_at":"2026-02-11T16:51:29.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-12T00:55:17.397Z","etag":null,"topics":["django","following-a-tutorial","frequent","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CoderSales.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-05T09:10:26.000Z","updated_at":"2026-02-11T16:51:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"9cbba3c3-4ac7-4332-bc97-704e928ccc9b","html_url":"https://github.com/CoderSales/Following-Django-Proj-CRM-App-Tutorial","commit_stats":null,"previous_names":["codersales/following-django-proj-crm-app-tutorial"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CoderSales/Following-Django-Proj-CRM-App-Tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2FFollowing-Django-Proj-CRM-App-Tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2FFollowing-Django-Proj-CRM-App-Tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2FFollowing-Django-Proj-CRM-App-Tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2FFollowing-Django-Proj-CRM-App-Tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoderSales","download_url":"https://codeload.github.com/CoderSales/Following-Django-Proj-CRM-App-Tutorial/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2FFollowing-Django-Proj-CRM-App-Tutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32508900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","following-a-tutorial","frequent","python"],"created_at":"2024-11-08T05:16:26.315Z","updated_at":"2026-05-01T18:31:57.623Z","avatar_url":"https://github.com/CoderSales.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Following-Django-Proj-CRM-App-Tutorial\n\nFollowing a Django Tutorial to Build a CRM App Tutorial\n\n## Steps\n\n- conda deactivate base\n- 3:17 [install virtual environment](https://youtu.be/t10QcFx7d5k?t=197)\n- 3:31 [activate virtual environment](https://youtu.be/t10QcFx7d5k?t=211)\n- 3:43 [pip install django](https://youtu.be/t10QcFx7d5k?t=223)\n- python.exe -m pip install --upgrade pip\n- 3:50 [pip install mysql](https://youtu.be/t10QcFx7d5k?t=230)\n- 3:54 [Download mysql](https://youtu.be/t10QcFx7d5k?t=234)\n- 4:01 [connector from Django to mysql app](https://youtu.be/t10QcFx7d5k?t=241)\n\n  - 4:05 [There are 2 connectors](https://youtu.be/t10QcFx7d5k?t=245)\n\n    - 4:06 [pip install mysql-connector](https://youtu.be/t10QcFx7d5k?t=246)\n    - 4:13 [pip install mysql-connector-python](https://youtu.be/t10QcFx7d5k?t=253)\n\n- 4:34 [download and install mysql](https://youtu.be/t10QcFx7d5k?t=274)\n- [dev.mysql.com](https://dev.mysql.com/)\n\n  - [dev.mysql.com/downloads/installer/](https://dev.mysql.com/downloads/installer/)\n  - MySQL Installer 8.0.34\n\n- 4:48 [Community installer](https://youtu.be/t10QcFx7d5k?t=288)\n- 4:50 [link 2 of 2 with the ~300M file size](https://youtu.be/t10QcFx7d5k?t=290)\n- 4:53 [click download](https://youtu.be/t10QcFx7d5k?t=293)\n\n## Installation Note\n\n- 5:04 [Important: setup Username and Password](https://youtu.be/t10QcFx7d5k?t=304)\n\n## Turn on MySQL Server\n\n- 5:30 [Turn on MySQL Server](https://youtu.be/t10QcFx7d5k?t=330)\n\n  - 5:37 [MySQL needs to be running in the background](https://youtu.be/t10QcFx7d5k?t=337)\n\n- 5:43 [head back over to terminal](https://youtu.be/t10QcFx7d5k?t=343)\n\n- 5:52 [django-admin startproject dcrm](https://youtu.be/t10QcFx7d5k?t=352)\n\n- 13:38 [setup git](https://youtu.be/t10QcFx7d5k?t=818)\n\n- 16:37 [See code pushed to GitHub remote repository](https://youtu.be/t10QcFx7d5k?t=997)\n\n- 21:29 [First webpage working](https://youtu.be/t10QcFx7d5k?t=1289)\n\n- 21:46 [In base.html is the code that will go on every page](https://youtu.be/t10QcFx7d5k?t=1306)\n\n- 21:49 [Bootstrap](https://youtu.be/t10QcFx7d5k?t=1309)\n\n- 21:54 [getbootstrap.com](https://youtu.be/t10QcFx7d5k?t=1314)\n\n- 21:59 [Docs](https://youtu.be/t10QcFx7d5k?t=1319)\n\n- 25:47 [change light to dark navbar](https://youtu.be/t10QcFx7d5k?t=1547)\n\n- 28:08 [navbar has been tidied up](https://youtu.be/t10QcFx7d5k?t=1688)\n\n____________________\n\n- 28:48 [Django login users](https://youtu.be/t10QcFx7d5k?t=1728)\n\n- 29:50 [views.py import authenticate log in out and messages](https://youtu.be/t10QcFx7d5k?t=1790)\n\n- 30:47 [how request works](https://youtu.be/t10QcFx7d5k?t=1847)\n\n- 31:11 [url](https://youtu.be/t10QcFx7d5k?t=1871)\n\n- 35:55 [Form added with baasic modification](https://youtu.be/t10QcFx7d5k?t=2155)\n\n- 36:14 [Cut log me out tick box](https://youtu.be/t10QcFx7d5k?t=2174)\n\n- 37:31 [Username and Password formatted](https://youtu.be/t10QcFx7d5k?t=2251)\n\n- 37:41 [Login button clicking should do nothing (Fixed earlier error, see README/Bugs/Issue:Login...)](https://youtu.be/t10QcFx7d5k?t=2261)\n\n- 37:46 [Username and Password need to be requireed](https://youtu.be/t10QcFx7d5k?t=2266)\n\n- 47:16 [There was an error login Bootstrap message with x working](https://youtu.be/t10QcFx7d5k?t=2836)\n\n- 50:37 [Login and Logout working](https://youtu.be/t10QcFx7d5k?t=3037)\n\n- 51:46 [Register Users](https://youtu.be/t10QcFx7d5k?t=3106)\n\n- 54:42 [Register Page exists](https://youtu.be/t10QcFx7d5k?t=3282)\n\n- 1:04:28 [Registration updated, tutorial commit](https://youtu.be/t10QcFx7d5k?t=3868)\n\n  GitHub for Tutorial:\n  - [tutorial 'registration' commit](https://github.com/flatplanet/Django-CRM/commit/b7b5d76f88963010ac93e897a67416a5243c74f0)\n\n  - [relevant code: form.py](https://github.com/flatplanet/Django-CRM/blob/main/website/forms.py)\n\n- 1:13:53 [Add registration detail - Done](https://youtu.be/t10QcFx7d5k?t=4433)\n\n- 1:14:43 [end setting up site | start crm](https://youtu.be/t10QcFx7d5k?t=4483)\n\n- 1:15:03 [Django DataBase Model](https://youtu.be/t10QcFx7d5k?t=4503)\n\n- 1:15:30 [Python/Django creates a class that abstracts away and creates code for us on the backend.](https://youtu.be/t10QcFx7d5k?t=4530)\n\n  - 1:15:37 [It will create the MySQL code if you're using MySQL](https://youtu.be/t10QcFx7d5k?t=4537)\n\n  - 1:15:40 [It will create the PostgreSQL code](https://youtu.be/t10QcFx7d5k?t=4540)\n\n  - 1:15:42 [Whatever DataBase you're using, it will do it for you behind the scenes.](https://youtu.be/t10QcFx7d5k?t=4542)\n\n- 1:15:48 [define class](https://youtu.be/t10QcFx7d5k?t=4548)\n\n- 1:19:18 [In models.py Add class Record and Define subelements](https://youtu.be/t10QcFx7d5k?t=4758)\n\n- 1:23:11 [Record model migration applied](https://youtu.be/t10QcFx7d5k?t=4991)\n\n- 1:24:21 [Records model added to admin.py](https://youtu.be/t10QcFx7d5k?t=5061)\n\n- 1:25:50 [Start of 'Django View Records on Website' timestamp on tutorial](https://youtu.be/t10QcFx7d5k?t=5150)\n\n- 1:31:02 [Return record at front end | View but still not formatted correctly](https://youtu.be/t10QcFx7d5k?t=5462)\n\n- 1:31:02 [Start of Django Bootstrap Table for formatting | Same timestamp twice for different topics | (Purpose of 2 timestamps is to delineate different topics)](https://youtu.be/t10QcFx7d5k?t=5462)\n\n- 1:35:26 [Table added to site](https://youtu.be/t10QcFx7d5k?t=5726)\n\n- 1:35:26 [Prepare for adding extra formatting from Bootstrap Table Docs](https://youtu.be/t10QcFx7d5k?t=5726)\n\n- 1:36:10 [table-hover class added to table in home.html](https://youtu.be/t10QcFx7d5k?t=5770)\n\n- 1:36:41 [Border added to table](https://youtu.be/t10QcFx7d5k?t=5801)\n\n- 1:36:57 [table-sm | table small class](https://youtu.be/t10QcFx7d5k?t=5817)\n\n- 1:37:14 [Cut table-sm | table small class](https://youtu.be/t10QcFx7d5k?t=5834)\n\n- 1:37:34 [Add table-dark class (to `\u003cthead\u003e` element) | Purpose: To make table header row dark](https://youtu.be/t10QcFx7d5k?t=5854)\n\n- 1:37:55 [Identify TODO items and Plan next steps](https://youtu.be/t10QcFx7d5k?t=5875)\n\n- 1:38:25 [Next Step: Django Individual Records](https://youtu.be/t10QcFx7d5k?t=5905)\n\n- 1:43:57 [Added customer records page accessible only when logged in | Access page by primary key by passing (`/\u003cint:pk\u003e`) | setup url in urls.py, view in views.py and record.html in templates folder](https://youtu.be/t10QcFx7d5k?t=6237)\n\n- 1:45:10 [Hovering over record ID links on page causes bottom left corner of site to display (hosted site home page)/record/(id#)](https://youtu.be/t10QcFx7d5k?t=6310)\n\n- 1:45:38 [TODO Add content to record/\u003cint:pk\u003e](https://youtu.be/t10QcFx7d5k?t=6338)\n\n- 1:46:14 [Added customer record to record page](https://youtu.be/t10QcFx7d5k?t=6374)\n\n- 1:48:43 [Added content to records page | TODO: Add Bootstrap Card (formatting)](https://youtu.be/t10QcFx7d5k?t=6523)\n\n- 1:56:52 [Added Bootstrap Card and Buttons (unconnected) to records page | TODO: Delete Record](https://youtu.be/t10QcFx7d5k?t=7012)\n\n- 2:01:07 [Wired up Delete Record Button on record page | TODO: Add \"Add Records\" Functionality](https://youtu.be/t10QcFx7d5k?t=7267)\n\n- 2:03:09 [Add \"Add Record\" button to navbar](https://youtu.be/t10QcFx7d5k?t=7389)\n\n- 2:12:12 [Added 'Add Record' Form to 'Add Record' Page | TODO: Update Records](https://youtu.be/t10QcFx7d5k?t=7932)\n\n- 2:20:08 [Add Update Record Page (with Back Button) | Push Code to GitHub](https://youtu.be/t10QcFx7d5k?t=8408)\n\n## Bugs\n\nBug Number: 1\n\nIssue: Login button goes to a 403 page with CSRF missing\n\nCause: form element missing closing triangular bracket in templates/home.html\n\nFix: add closing triangular bracket to form element\n\n______________________________________________________________________________________________;\n\nBug Number: 2\n\nContext:\n\n  File: forms.py\n\n  Line Number: 40\n\n  Line Content: first_name = Forms.CharField(required=True, widget=forms.widgets.TextInput(attrs={\"placeholder\":\"First Name\", \"class\":\"form-control\"}), label=\"\")\n\n  Issue: First letter capitalization of Forms\n\n  Fix: Change Forms to forms\n\n## References\n\n- [Tutorial](https://youtu.be/t10QcFx7d5k?t=139)\n- [GitHub Repository for Tutorial](https://github.com/flatplanet/Django-CRM)\n- [ChatGPT3.5](https://chat.openai.com/?model=text-davinci-002-render-sha)\n- [VisualStudioCode]\n- [Sublime]\n\n### VSCode Extensions\n\n- [Live Server | Go Live]\n- [Copilot]\n- [Tabnine AI Autocomplete for Javascript, Python, Typescript, PHP, Go, Java, Ruby \u0026 more]\n- [GitLens]\n- [IntelliCode]\n- [IntelliCode API Usage Examples]\n- [Pylance]\n- [Python]\n- [Python Environment Manager]\n- [Python Extension Pack]\n- [WSL]\n- [Path Intellisense]\n- [Live Preview]\n- [isort]\n\n### Packages\n\n- [Django]\n- [Bootstrap]\n\n### DataBase\n\n- [MySQL]\n- [mysql-connector]\n- [mysql-connector-python]\n- [mysqlclient]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodersales%2Ffollowing-django-proj-crm-app-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodersales%2Ffollowing-django-proj-crm-app-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodersales%2Ffollowing-django-proj-crm-app-tutorial/lists"}