[!NOTE]
Return back to the README.md file.
I have used the recommended HTML W3C Validator to validate all of my HTML files.
| Directory | File | Screenshot | Notes |
|---|---|---|---|
| project_manager | add_profile.html | ![]() |
https://validator.w3.org/nu/?doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2F |
| project_manager | add_project.html | ![]() |
https://validator.w3.org/nu/?doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fadd_project |
| project_manager | add_task.html | ![]() |
https://validator.w3.org/nu/?doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fadd_task%2F30%2F |
| project_manager | edit_profile.html | ![]() |
https://validator.w3.org/nu/?doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fedit_profile%2F27 |
| project_manager | edit_project.html | ![]() |
https://validator.w3.org/nu/?doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fedit%2F30 |
| project_manager | edit_task.html | ![]() |
https://validator.w3.org/nu/?doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fedit_task%2F73 |
| project_manager | edit_task_status.html | ![]() |
https://validator.w3.org/nu/?doc=https%3A%2F%2Fvalidator.w3.org%2Fnu%2F%3Fshowsource%3Dyes%26doc%3Dhttps%253A%252F%252Fproject-management-tool-70101b30ec1e.herokuapp.com%252Fprofile_detail%252F27%252F |
| project_manager | home.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2F |
| project_manager | my_tasks.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fmy_tasks |
| project_manager | profile_confirm_delete.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fdelete_profile%2F27 |
| project_manager | profile_detail.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fprofile_detail%2F27%2F |
| project_manager | profiles.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fprofiles%2F |
| project_manager | project_confirm_delete.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fdelete%2F30 |
| project_manager | project_detail.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fproject_detail%2F30%2F |
| project_manager | projects.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fprojects |
| project_manager | task_confirm_delete.html | ![]() |
https://validator.w3.org/nu/?showsource=yes&doc=https%3A%2F%2Fproject-management-tool-70101b30ec1e.herokuapp.com%2Fdelete_task%2F73 |
| templates | 403.html | ![]() |
|
| templates | 404.html | ![]() |
I have used the recommended CSS Jigsaw Validator to validate all of my CSS files.
| Directory | File | Screenshot | Notes |
|---|---|---|---|
| static | base.css | ![]() |
I have used the recommended JShint Validator to validate all of my JS files.
| Directory | File | Screenshot | Notes |
|---|---|---|---|
| static | script.js | ![]() |
I have used the recommended PEP8 CI Python Linter to validate all of my Python files.
| Directory | File | CI URL | Screenshot | Notes |
|---|---|---|---|---|
| manage.py | PEP8 CI | ![]() |
||
| my_project | settings.py | PEP8 CI | ![]() |
|
| my_project | urls.py | PEP8 CI | ![]() |
|
| project_manager | admin.py | PEP8 CI | ![]() |
|
| project_manager | forms.py | PEP8 CI | ![]() |
|
| project_manager | models.py | PEP8 CI | ![]() |
|
| project_manager | urls.py | PEP8 CI | ![]() |
|
| project_manager | views.py | PEP8 CI | ![]() |
I’ve tested my deployed project on multiple browsers to check for compatibility issues.
| Browser | Home | Home after login | Login | Signup | Signout | My Projects | My Tasks | New Project | My Profile (add) | My profile | Members | Profile detail | Edi Project | Delete Project | Add Task | Task Detail | Edit Task | Delete Task | Update Task Status | Edit Profile | Delete Profile | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Works as expected |
| Firefox | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Works as expected |
| Edge | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Works as expected |
I’ve tested my deployed project on multiple devices to check for responsiveness issues.
| Device | Home | Home after login | Login | Signup | Signout | My Projects | My Tasks | New Project | My Profile (add) | My profile | Members | Profile detail | Edi Project | Delete Project | Add Task | Task Detail | Edit Task | Delete Task | Update Task Status | Edit Profile | Delete Profile | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mobile (DevTools) | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Works as expected |
| Tablet (DevTools) | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Works as expected |
| Desktop (DevTools) | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Works as expected |
I’ve tested my deployed project using the Lighthouse Audit tool to check for any major issues.
| Page | Mobile | Desktop | Notes |
|---|---|---|---|
| Home | ![]() |
![]() |
no warnings |
| Home when logged in | ![]() |
![]() |
no warnings |
| Login | ![]() |
![]() |
no warnings |
| Signup | ![]() |
![]() |
no warnings |
| Signout | ![]() |
![]() |
no warnings |
| My Projects | ![]() |
![]() |
no warnings |
| Project details | ![]() |
![]() |
no warnings |
| Add Project | ![]() |
![]() |
no warnings |
| Edit Project | ![]() |
![]() |
no warnings |
| Delete Project | ![]() |
![]() |
no warnings |
| My Tasks | ![]() |
![]() |
no warnings |
| Task details | ![]() |
![]() |
no warnings |
| Add Task | ![]() |
![]() |
no warnings |
| Edit Task | ![]() |
![]() |
no warnings |
| Update Task Status | ![]() |
![]() |
no warnings |
| Delete Task | ![]() |
![]() |
no warnings |
| Profiles | ![]() |
![]() |
no warnings |
| Profile Details | ![]() |
![]() |
no warnings |
| Add Profile | ![]() |
![]() |
no warnings |
| Edit Profile | ![]() |
![]() |
no warnings |
| Delete Profile | ![]() |
![]() |
no warnings |
Defensive programming was manually tested with the below user acceptance testing:
| Page | Expectation | Test | Result | Fix | Screenshot |
|---|---|---|---|---|---|
| Authentication | |||||
| Signup feature is expected to create a user when the form is filled successfully | Tested the feature filling the form | The feature behaved as expected, and created a user | Test concluded and passed | ![]() |
|
| Login feature is expected to login an existing user when the user fills the form | Tested the feature by filling the form | The feature behaved as expected, and logged in the user | Test concluded and passed | ![]() |
|
| Signout feature is expected to logout the user when the user confirms signout | Tested the feature by confirming sign out | The feature behaved as expected, and signed the user out | Test concluded and passed | ![]() |
|
| My Projects | |||||
| My projects’ cards are expected to redirect the user to the project’s details when the user clicks on them. | Tested the feature by clicking one of them | The feature behaved as expected and led me to the project’s details page | Test concluded and passed | ![]() |
|
| Project details page is expected to have the edit/delete buttons if the user is the creator of the project | Tested the feature by clicking a project I created | The feature behaved as expected and showed the buttons | Test concluded and passed | ![]() |
|
| Project details page is expected not to have the edit/delete buttons if the user is not the creator of the project | Tested the feature by clicking a project I did not creat | The feature behaved as expected and did not show the buttons | Test concluded and passed | ![]() |
|
| Edit Project page is expected to have a filled form with the details of the project for editing the project | Tested the feature by editing the details | The feature behaved as expected and edited the project | Test concluded and passed | ![]() |
|
| Delete confirmation page is expected to delete the project when the user clicks on confirm | Tested the feature by clicking the button | The feature behaved as expected and deleted the project | Test concluded and passed | ![]() |
|
| New Project page is expected to have a form for the creation of a project | Tested the feature by filling the form | The feature behaved as expected and created a project | Test concluded and passed | ![]() |
|
| Add Task button is expected to add a task to the project associated to it | Tested the feature by clicking the Add Task button | The feature behaved as expected and directed me to the Add Task form | Test concluded and passed | ![]() |
|
| Add Task form is expected to add a task to the project associated to it | Tested the feature by filling the form | The feature behaved as expected and created a task | Test concluded and passed | ![]() |
|
| Update status of the task is expected to update the status of this particular task | Tested the feature by changinf the status | The feature behaved as expected and updated status of the task | Test concluded and passed | ![]() |
|
| Edit Task form is expected to edit the task | Tested the feature by editing the details on the form | The feature behaved as expected and edited the task | Test concluded and passed | ![]() |
|
| Task delete confirmation is expected to delete the task when the user clicks the button | Tested the feature by clicking the button to confirm deletion | The feature behaved as expected and deleted the task | Test concluded and passed | ![]() |
|
| My Profile is expected to lead to the Add Profile form if the user does not have a profile or to the his/hers profile page if he/she have alreadya profile | Tested the feature by clicking on My Profile one time when I had a profile and one time if when I had not | The feature behaved as expected and led me to the respective page | Test concluded and passed | ![]() |
|
| Add Profile is expected to add a profile for the user when the user fills the form successfully | Tested the feature by filling the form | The feature behaved as expected and created my profile | Test concluded and passed | ![]() |
|
| Edit Profile is expected to show the form with the information of the profile to be able to edit it | Tested the feature by editing the information | The feature behaved as expected and edited my profile | Test concluded and passed | ![]() |
|
| Profile delete confirm is expected to delete the profile if the user confirms it | Tested the feature by clicking on the confirm button | The feature behaved as expected and deleted my profile | Test concluded and passed | ![]() |
|
| When a user tries to access a page that he is not authenticated for he gets the 403 page | Tested the feature by trying to access the edit profile form of a user being logged in as another user. | The feature behaved as expected and redirected me to 403 page | Test concluded and passed | ![]() |
|
| When a user tries to access a page that does not exist he gets the 404 page | Tested the feature by trying to access a profile that I had previously deleted | The feature behaved as expected and redirected me to 404 page | Test concluded and passed | ![]() |
| User Story | Screenshot |
|---|---|
| As a new site user, I would like to sign up, so that I can enter the site. | ![]() |
| As a new site user, I would like to create a project, so that I can start organizing my work. | ![]() |
| As a new site user, I would like to create tasks for my projects, so that I can organize them into smaller segments. | ![]() |
| As a new site user, I would like to assign tasks to others, so that I can delegate my work. | ![]() |
| As a new site user, I would like to create my profile, so that others can see my information. | ![]() |
| As a new site user, I would like to sign out, so that my work and my information are secure. | ![]() |
| As a returning site user, I would like to login , so that I can have access to my previous work. | ![]() |
| As a returning site user, I would like to create new projects and edit or delete my projects, so that I can update the information of my work. | ![]() |
| As a returning site user, I would like to create, edit or delete tasks to the projects I have created, so that I can update the information of my work. | ![]() |
| As a returning site user, I would like to edit or delete my profile, so that I can update my information. | ![]() |
| As a returning site user, I would like to sign out, so that my work and information are secure. | ![]() |
| As a returning site user, I would like to search through the projects I have created to isolate the one that I want to work with something that saves time. | ![]() |
| As a returning site user, I would like to be informed if I am not authorized to access certain pages. | ![]() |
| As a returning site user, I would like to be informed if I the page that I am trying to access is unavaillable. | ![]() |
| As a site administrator, I should be able to see, create, edit and delete all the projects, tasks and profiles on the site, so that I can control the information on the site. | ![]() |
Python
I encountered an error trying to to have 2 queries in one function separately and that did not work properly.
To fix this, I restrustured the code to make one query for all.
Django TemplateDoesNotExist
Python E501 line too long
Fixed Bugs
Open Issues
Any remaining open issues can be tracked here.
