ABCDE Todo List
Developer: Arron Beale
💻 Visit live website
(Ctrl + click to open in new tab)
Table of Contents
About
"ABCDE Todo List" is an application that helps a user organize their time according to Brian Tracy's method, as described in his book "Eat That Frog." Additionally, the website has additional features:
- Feedback form
- Admin favorite books.
User Goals
- Create/Update/Delete tasks.
- Be able to see all tasks in one place.
- Have access to the manual of the application.
- Send a feedback message to the admin
- Read the list of self-development books.
Site Owner Goals
- To provide a solution to allow users to organize to-do tasks.
- Create an intuitive and easy-to-use application to attract more customers.
- Develop a fully responsive and accessible website.
User Experience
Target Audience
- Students: managing assignments, study schedules.
- People with Busy Lifestyles: Manage multiple responsibilities.
- Project Managers: To coordinate and track tasks.
- Individuals Seeking Personal Productivity: To increase personal productivity.
- Freelancers and Gig Workers: To manage their various freelance projects and deadlines
User Requirements and Expectations
- Fully responsive website on all devices.
- Ability to use the app on all types of devices.
- Calm and relaxing GUI interface.
- Contact Form to engage with support or leave feedback.
- Easy and intuitive application.
- List of books for self-development.
User Stories
- As a user, I would like to log in to my account. (Must Have) (Epic-1: Authentication)
- As a user, I would like to create a new account. (Must Have) (Epic-1: Authentication)
- As a user, I would like to be able to move from the Register page to the Log In page. (Must Have) (Epic-1: Authentication)
- As a user, I would like to create a new task. While creating the task, I may modify the following fields: 'title,' 'description,' 'importance,' 'frequency,' 'deadline.' (Must Have) (Epic-2: List-Create-Add-Delete-Tasks)
- As a user, I would like to update a task. While updating the task, I may modify the following fields: 'title,' 'description,' 'importance,' 'frequency,' 'deadline.' (Should Have) (Epic-2: List-Create-Add-Delete-Tasks)
- As a user, while on the "Create/Update Task" page, I need to go back without modifying or creating a task. (Could Have) (Epic-2: List-Create-Add-Delete-Tasks)
- As a user, I would like to delete a task. (Could Have) (Epic-2: List-Create-Add-Delete-Tasks)
- As a user, while on the "Delete" page, I would like to return to the homepage without deleting the task. (Could Have) (Epic-2:List-Create-Add-Delete-Tasks)
- As a user, I would like to read the manual to understand how to use the application. (Should Have) (Epic-3: Contact Form)
- As a user, I would like to be able to send an email to the admin to contact him or share feedback. (Could Have) (Epic-3: Contact Form)
- As a user, I would like to see the list of books the admin proposes for self-development and visit the Amazon website where I can buy them. (Should Have) (Epic4-Product List)
- As a user, I would like to log out from my account. (Must Have) (Epic-1: Authentication)
- As a user, I would like to see the list of all tasks.(Must) (Epic-2:List-Create-Add-Delete-Tasks)
Admin / Authorised User
- In my role as an Admin or Authorized User, I have the capability to log in to the admin console for backend access. (Must Have) (Epic5: Back-End-Administration)
- As an Admin, I can create users, delete users. (Must Have) (Epic5: Bakl-End-Administration)
- As an Admin, I want to modify user's settings: First Name, Permissions. (Should Have) (Epic5: Bakl-End-Administration)
- As an Admin, I want to filter users by staff, superuser, or active status. (Should Have) (Epic5: Bak-End-Administration)
- As an Admin, I am able to manually include, remove, or update books in the list of favorite books. (Should Have) (Epic5: Bak-End-Administration)
- As an Admin, I can view messages that have been sent by users through the contact form. (Should Have) (Epic5: Bak-End-Administration)
- As an Admin, I can view, update, delete users' tasks. (Could Have) (Epic5: Bak-End-Administration)
- As an Admin, I can filter tasks by: importance, frequency, user. (Should Have) (Epic5: Bal-End-Administration)
- As an Admin, I would like a user to find all company's social links and navigate to them by clicking footer's icons. (Should Have) (Epic6: Other)
- As an Admin, I would like user to see hamburger menue on smaller screen sizes (Should Have) (Epic6: Other)
- As an Admin, I would like a user to see pagination on product page of books (Should Have) (Epic4-Product List)
- I would like a user to see 404 when he enters wrong URL. (Should Have) (Epic6: Other)
Kanban, Epics & User Stories
- The GitHub Kanban board was utilized for monitoring open user stories.
- Milestones feature was employed to establish Epics.
- The Kanban board incorporated columns such as Backlog, In Progress, and Done.
Epics
![Epics](docs/epic-kanban/epics.png)
![Epic 1](docs/epic-kanban/epic-1.png)
![Epic 2](docs/epic-kanban/epic-2.png)
![Epic 3](docs/epic-kanban/epic-3.png)
![Epic 4](docs/epic-kanban/epic-4.png)
![Epic 5](docs/epic-kanban/epic-5.png)
![Epic 66](docs/epic-kanban/epic-6.png)
User Stories
![User stories](docs/epic-kanban/user-story.png)
Kanban
![Kanban](docs/epic-kanban/kan-ban.png)
Design
Colours
I chose bright colors for the footer and navbar to make the application more positive.
I added a picture with a starry sky to make the application relaxing.
Structure
Website pages
The site was designed for the user to be familiar with the layout, such as a navigation bar along the top of the pages and a hamburger menu button for smaller screens.
The footer contains all relevant social media links that the business has, so the user can visit any social media site and follow the business there to expand the business's followers, likes, and shares.
The site consists of the following pages:
- Login page where the user can log in to his account.
- Register page where the user can register.
- Homepage where the user can see all his tasks.
- Create/Update task page, where the user can create or update the task.
- Delete page, where the user can delete the task.
- Manual page, where the user can read how to use the application.
- Contact/Feedback page, where the user can complete a form to share his feedback or just send an email to the admin/owner.
- Books page, where the user can see the admin's favorite books on sales development.
- 404 error page to display if a 404 error is raised.
Database
- Built with Python and the Django framework with a database of neon.tech for the deployed Render version (production).
Show diagram
User Model
The User Model contains the following:
- user_id
- password
- last_login
- is_superuser
- username
- first_name
- last_name
- email
- is_staff
- is_active
- date_joined
Contact Model
The Contact Model contains the following:
- id
- name
- email
- subject
- message
Books Model
The Books Model contains the following:
- id
- title
- details
- stars
- numberreviews
- price
- productpic
- amazon
Tasks Model
The Tasks Model contains the following:
- id
- user
- title
- description
- complete
- created
- frequency
- importance
- completed
- due
Wireframes
The wireframes were created using Balsamiq
Wireframes
Login
Register
Home
Manual
Books
ContactForm
DeleteTask
CreateUpdateTask
404 Page
Features
Home page
- Home page includes navbar, main body, and a footer.
User stories: 5, 6, 7, 22, 23
See feature images
![Home page](docs/features/feature-homepage.png)
Logo & Navigation
- Shows logo designed for a to-do list.
- Responsive across various screen sizes.
- Transforms into hamburger menu on smaller screens.
- Shows active user.
- Provides access to all available pages directly from the current page.
User stories: 23
See feature images
![Footer](docs/features/feature-homepage.png)
![Footer](docs/features/navbar-overview-logout.png)
![Footer](docs/features/navbar-overview-hamburger.png)
Footer
Contains social media links and copyright, displayed across all pages.
User stories: 22
See feature images
![Footer](docs/features/footer.png)
Sign up / Register
- Allow users to register an account. Username and password are required
User stories: 2
See feature images
![Register](docs/features/register.png)
Login
- Users can log in to create, update, or delete tasks, view a list of tasks, send feedback messages, and see a list of favorite books.
User Sotries: 1
See feature images
![Login](docs/features/login.png)
Logout
- Enables users to securely log out
User stories:12
See feature images
![Logout](docs/features/navbar-overview-logout.png)
Hyperlink connection link between register and Login page
- Enables users to navigate from login to register page and back
User stories: 3
See feature images
![Logout](docs/features/login-register.png)
Manual Page
- Enables users to read manual on how to use the application.
User stories: 9
See feature images
![ContactForm](docs/features/manual.png)
Contact Form
- Enables users to contact the admin/site owner to share feedback.
User stories: 10,
See feature images
![ContactForm](docs/features/contact-form.png)
Books
- Allows the user to view the list of favorite books.
- Users may see the book title, book cover, book description, star rating, and the number of reviews.
- Users can click on 'Buy on Amazon' to purchase the book from Amazon.
- Users can utilize pagination to view the complete list of books.
User Stories: 11, 24
See feature images
![Book](docs/features/books.png)
Task List
- Allows the user to see all their tasks for Daily, Weekly, Monthly, Yearly goals.
- Users can see the severity of the task, deadline of the task, and completion status.
- Allows users the option to create a task, update/view the task, and delete the task.
User Stories: 4, 5, 7, 13
See feature images
![Task List](docs/features/task-list.png)
View/Edit Task page
- Allows the user to edit/view tasks.
User stories: 5, 6
See feature images
![Edit/View Task](docs/features/update-view.png)
Delete Task page
- Allows the user to delete a task.
User stories: 7, 8
See feature images
![Delete Task](docs/features/delete-task.png)
Social Media Links and CopyRight
- A logo and link are used for each social media platform displayed.
- All links open in a new tab to ensure the user is not directed away from the business.
- Displayed on all pages.
User Stories: 22
See feature images
![Social Media Links](docs/features/media-links.png)
Pagination
- Pagination is used on the bookings list and the blog page.
- This ensures that the page is kept tidy, with only two items displayed per page.
User Stories: 22
See feature images
![Pagination](docs/features/pagination.png)
Admin console for backend access.
- User can access admin console for backend tasks
User Stories: 14
See feature images
![Admin console](docs/features/administration-panel.png)
Admin console: User Settings.
- Creating, editing deleting users.
- Modifying user settings: name, staff, superuser, status etc
- Filtering users
User Stories: 15, 16, 17
See feature images
![Admin User Settings](docs/features/admin-users.png)
Admin console: Books Settings.
- Add, edit, delete books presented on book page.
User Stories: 18
See feature images
![Admin User Settings](docs/features/admin-product-books.png)
Admin console: Messages.
- can view messages user's sent to admin through contact form
- can view update delete user's tasks
- Can filter user's tasks
User Stories: 19
See feature images
![Admin Messages](docs/features/admin-contact-form.png)
Admin console: Tasks Settings.
- can view update delete user's tasks
- Can filter user's tasks
User Stories: 20, 21
See feature images
![Admin Tasks](docs/features/admin-tasks.png)
404 page
- A page is displayed when the user enters an incorrect URL.
User Stories: 25
See feature images
![Delete Task](docs/features/404.png)
Technologies Used
Languages & Frameworks
- HTML
- CSS
- Javascript
- Python
- Django
Libraries & Tools
Validation
The W3C Markup Validation Service
Login
Register
Home
Task Create Update
Task Delete
Manual
Contact Form
Books
404
### CSS Validation
The W3C Jigsaw CSS Validation Service
Style.css
### PEP8 Validation
[PEP8 Validation Service](https://pep8ci.herokuapp.com/) The code underwent verification for PEP8 compliance and successfully passed without any errors or warnings.
TODO(base) Aplication.
base/admin.py
base/apps.py
base/forms.py
base/models.py
base/url.py
base/views.py
Books
books/admin.py
books/apps.py
books/models.py
books/urls.py
books/views.py
Contact Form
contactform/admin.py
contactform/apps.py
contactform/models.py
contactform/urls.py
contactform/views.py
### Lighthouse
Performance, best practices, and SEO were tested using Lighthouse.
#### Desktop
Login
Register
Homepage
Create/Update Task
Delete Task
Manual
Feedback
Books
#### Mobile
Login
Register
Homepage
Create Update Task
Delete Task
Manual
Feedback
Books
### Wave
WAVE was used to test the website accessibility.
Login
We have two false positive errors. The WAVE
check indicates that labels are empty, but in reality,
the labels have icons instead of text
Register
We have 3 false positive errors, as before. The WAVE
check says that labels are empty, but in reality,
the labels have icons instead of text.
HomePage
We observe 2-8 false positive errors, specifically, 'A link contains
no text.' This occurs because I used icons instead of text to create links.
Create/Update Task
Delete Tasks
Manual
Feedback
Books
We have a false positive contrast error. Pagination background
and page numbers have very good contrast.
404
We have one alert: 'Suspicious link text,' which indicates that the purpose of the link is not
described well. However, the link is part of the sentence 'Otherwise, click here to redirect
to the homepage.' This sentence explains the purpose of the link. For this reason, the alert
is a false positive.
## Testing
1. Manual testing
### Users
### Manual testing
## User Stories
1. As a User I would like to login to my account. (Must Have) (Epic-1: Authentication)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Open the application URL and navigate to the login page. Enter user credentials to log in. | User loged in. | Works as expected. |
2. As a User I would like to create a new account. (Must Have). (Epic-1: Authentication)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| On login page click "Sign Up". On register page register your username and password. | New account is created and user logged in. | Works as expected. |
3. As a User I would like to be able to move from Register page to Log In Page. (Must Have) (Epic-1: Authentication)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| On Register page, click on link "Login". | User is redirected to Log In Page. | Works as expected. |
4. As a user, I would like to create a new task. While creating the task, I may modify the following fields: 'title', 'description', 'importance','frequency', 'deadline'.
(Must Have) (Epic-2: List-Create-Add-Delete-Tasks)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| On the homepage, click 'Add New.' On the Create/Update page, complete the fields: 'title,' 'task description,' select the 'deadline,' 'severity,' 'importance,' 'frequency,' and click Submit. | A new task is created with the required fields filled out. | Works as expected |
5. As a user, I would like to update a new task. While updating the task, I may modify the following fields: 'title', 'description', 'importance','frequency', 'deadline'.
(Should Have) (Epic-2: List-Create-Add-Delete-Tasks)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Click on a pencil icon in the edit column. On the 'Create/Update Task' page, you may modify one or more of the following fields: 'title,' 'description,' 'importance,' 'frequency,' 'deadline.' | Task Modified | Works as expected |
6. As a user, while I am on "Create/Update Task" I need to go back, without modifying or creating task. (Could Have) (Epic-2: List-Create-Add-Delete-Tasks)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| While on "Create/Update" page click on an arrow on left top corner. | User is redirected to Homepage | Works as expected |
7. As a user I would like to delete the task. (Could Have) (Epic-2: List-Create-Add-Delete-Tasks)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Click on x in Edit colon. On Delete page click "Delete". | The task is deleted | Works as expected |
8. As a user, while on "Delete" page I would like to return to homepage without deleting the task. (Could Have) (Epic-2:List-Create-Add-Delete-Tasks)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| While on a "Delete" page, click on the arrow on the top left corner.| The user redirected back to homepage, task is not deleted. | Works as expected |
9. As a user, I would like to read manual, to understand how to use the application. (Should Have) (Epic-3: Contact Form)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| While on homepage, click "Manual" in navigation bar. | "The user is redirected to the manual page where they can read instructions. | Works as expected |
10. As a user I would like to be able to send an email to admin, to contact him or share feedback. (Could Have) (Epic-3: Contact Form)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| While on the homepage, click on 'Feedback,' complete all fields, and then click 'Send Feedback'. | UThe user is redirected to the homepage and sees the message that the email was received | Works as expected |
11. As a user I would like to see the list of book the admin propose for self development, and visit Amazon website where I can buy it. (Should Have) (Epic4-Product List)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| While on the homepage, click on 'Books.' View the book covers, descriptions, and ratings. Click the 'Buy on Amazon' button to navigate to the Amazon page, where you can make a purchase | The user is redirected to the 'Books' page and then to Amazon's website. | Works as expected |
12. As a user, I would like to log out from my account. (Must Have) (Epic-1: Authentication)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Navigate to the navbar, click on "User," in the dropdown menu, click "Log Out."| User Log Out from the account | Works as expected |
13. As a user, I would like to see the list of all tasks. (Must Have) (Epic-2: List-Create-Add-Delete-Tasks)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Login to the account. Click on the logo or homepage. | User sees the list of his tasks. | Works as expected |
## Admin/Site owner user stories.
14. In my role as an Admin or Authorized User, I have the capability to log in to the admin console for backend access. (Must Have) (Epic5: Back-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| navigate to https://ci-pp4-td-1.onrender.com/admin/ Complete username and Password and click next to login | User redirected to admin console. | Works as expected |
15. As an Admin, I can create users, delete users . (Must Have) (Epic5: Bakl-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| In the admin console, click on 'Users.' Then, click on 'Add User' in the top right corner to create a new user. Complete the username and password fields and click 'Save.' To delete a user, select the user, choose 'Delete selected user' from the 'Action' menu, and click 'Go. | One user is created, one user is deleted. | Works as expected |
16. As an Admin, I want to modify user's settings: Firs Name, Perissions. (Should Have) (Epic5: Bakl-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| In the admin console, click on 'Users,' select a user, modify the user's settings, and click 'Save | User's settings are updated. | Works as expected |
17. As an Admin, I want to filter user by staff , superuser or active status. (Should Have) (Epic5: Bakl-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| In the admin console, click on 'Users,' then click on 'Filter,' and select the required filter settings. | Users are filtered according to the specified filter settings. | Works as expected |
18. As an Admin I am able to manually include, remove, or update books in the list of favorite books. (Should Have) (Epic5: Bakl-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| In the admin console, click on 'Products.' In the top right corner, select 'Add Product,' complete all the fields, and click 'Save.' To update a product, click on the product's name, update all required fields, and click 'Save.' To delete a product, select the product, choose 'Delete selected products' from the 'Action' menu, and then click 'Go.'| Book added, updated, deleted successfully. | Works as expected |
Add a new book.
Update a book.
Delete a book.
19. As an Admin , I can view messages that have been sent by users through the contact form. (Should Have) (Epic5: Bakl-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| In admin console, click on Contacts, and click on the text of a message. | A new window opens, and I can see full message which was sent by user. | Works as expected |
20. As an Admin , I can view, update, delete user's tasks. (Could Have) (Epic5: Bakl-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| In admin console, Navigate to "Tasks", Click on task. | A new window opens,where I can see, update or delete the task | Works as expected |
21. As an Admin , I can filter tasks by: importance, frequency, user. (Should Have) (Epic5: Bakl-End-Administration)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Navigate to "Tasks". Find Filter, set desired filters. | Tasks are filterd according to filter settings. | Works as expected |
22. As an Admin , I would like a user to find all company's social links, and navigate to them be clicking footer's icons.
(Should Have) (Epic6: Other)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| On homepage find footer. Click on one of the icons. | User is redirected to social media | Works as expected |
23. As an Admin, I would like user to see hamburger menue on smaller screen sizes. (Should Have) (Epic6: Other)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Login to the account. Right-click on the page, select "Inspect," change the screen resolution for a smaller device.. | Hamburger menu shows up. | Works as expected |
24. As an Admin, I would like a user to see pagination on product page of books. (Should Have) (Epic4-Product List)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Navigate to the 'Books' page, scroll down, and select the pagination page." | I see two items on a new pagination page | Works as expected |
25. I would like a user to see 404 when he enters wrong URL. (Should Have) (Epic6: Other)
**Step** | **Expected Result** | **Actual Result**
------------ | ------------ | ------------ |
| Enter incorrect URL of website | User see 404 error | Works as expected |
### Device Testing & Browser compatibility
### Performing tests on various devices
Testing of the website was conducted on the following devices:
- Latitude 5520
- Redmi Note 10
- Samsung Tablet A10.1
Furthermore, the website underwent testing using the Device Toggling feature of Google Chrome Developer Tools, which includes all available device options.
### Browser compatability
The following browsers were used to test the website:
- Google Chrome
- Mozilla Firefox
- Microsoft Egde
## Bugs
| **Bug** | **Fix** |
| ------- | ------- |
| css not loading| The static files configuration in settings.py was not correct. After fixing it, the issue was resolved |
| User could see the tasks of other users| Defensive programming: Configured users to see only their tasks by adding 'mydata = Task.objects.filter(user=request.user)' to the equation.|
| Users could update and delete other users' tasks | Adjusted code to check if the task belongs to the user; if not, it shows a 404 page. |
| The footer was not at the bottom of the page when the content was big | "I changed the footer class to 'class="text-center text-white fixed-bottom"'. After that, the issue was fixed on all pages. |
| The contact form was not saving subject of a message in admin. | Modified views.py script for feedback page to link correct subject to correct variable. |
| The homepage was not displaying correctly when the user had no tasks. | I found that it was counting tasks for other users. I added an additional filter to make the application count tasks only for the logged-in user by including 'user=request.user'.|
| Update page did not open, when I pressed on update button | The links were not set within urls.py, so they just needed to be wired up to load each relevant page." |
| Admin panel has "section" which is not used | Opened ticket with support, they informed me to leave everything as it is https://res.cloudinary.com/dtdqranu0/image/upload/v1699719979/pictures/glxfztk7cqr8r4n9puc9.png |
| In login, while testing register/login page on different resolutions, form form-control shrinks differently than input field. For this reason. For this reason"form-control" and input field have different sizes" https://res.cloudinary.com/dtdqranu0/image/upload/v1699790878/pictures/xcvu2nx2dfcq6gvxndrd.png | Created chat with support. Support informed me to leave everything as it is and just to add comment to bugs that bootstrap code does not work as expected https://res.cloudinary.com/dtdqranu0/image/upload/v1699790885/pictures/xd6fcamkuxomaizc2cee.png |
### Render Deployment
[Official Page](https://render.com/) (Ctrl + click)
### Render Deployment
Before deploying to render, environment variables must be defined in the Django project so that local development functions correctly. Once these environment variables are set up in the workspace, the project can be deployed, and the environment variables can be copied into HRender as config vars (to ensure the deployed app works correctly with 3rd party dependencies).
1. Create a file called env.py in the root directory of your workspace and ensure that the file is included in .gitignore. These variables should NOT be committed or pushed to GitHub.
2. import os to the file.
3. os.environ['DATABASE_URL'] = URL copied from neon.tech
4. os.environ['SECRET_KEY'] = A randomly generated key of your choosing. This keeps django from serving data to/from an unauthorised source.
5. os.environ['CLOUDINARY_URL'] = The URL from a cloudinary account. This can be found on the following page on the cloudinary website: www.cloudinary.com
Cloudinary
These environment variables can now be accessed and configured in the settings.py file of the django project.
The website was deployed to Render using the following process:
1. Login to [Render](https://render.com/)
Render Login
2. Select "New" and then choose "Create new app" from the options in the top right corner of the screen.
Create New App
3. Select "Build and deploy from a git repository".
Select Github
4. On the subsequent page, select "Connect a repository"
Connect Repository
5. Write Name of the application, in Build Command write "./build.sh", in Start Command "gunicorn todo_list.wsgi"
Github Deploy
6. Choose the repository you wish to link to the Heroku app.
Select Repository
7. Navigate to the settings and click on "Reveal Config Vars" under "Config Vars."
Select Repository
8. Scroll down to the "Config Vars" section and input the configuration variables mentioned at the beginning of this README section. Additionally, include a variable with the key 'PORT' and the value '8000' to prevent build errors. The final configuration should resemble this example:
KEY: DATABASE_URL
VALUE: postgresurlexample123.com
Configure Vars
9. Click on "Create Web Service".
10. The site should be successfully built, and Render will furnish a URL for the constructed site
### Clone Repository
Follow these steps to clone the repository:
1. Go to the GitHub repository
2. Find the "Code" button located above the file list and click on it.
3. Choose whether you prefer to clone via HTTPS, SSH, or Github CLI, and then click on the copy button to copy the URL to your clipboard.
4. Open Git Bash
5. Navigate to the directory where you would like to clone the directory and set it as the current working directory.
6. Type git clone and paste the URL from the clipboard ($ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY)
7. Hit the Enter key to create your local clone.
Please check the following link for more information: https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository
## Credits
### Images
Backgroun image was taken from https://getwallpapers.com/
### Code
1. First version of the App was built from Django Tutorial of Dennis Ivy: https://www.youtube.com/watch?v=llbtoQTt4q
2. Footer was taken from this page https://getbootstrap.com/docs/4.6/getting-started/introduction/
3. Navbar was taken from here https://getbootstrap.com/docs/4.6/components/navbar/.
4. Login, Register, Feedback pages are inspired from: https://bootsnipp.com/snippets/vl4R7
5. Product list : https://mdbootstrap.com/docs/standard/extended/product-cards/
6. Pagination was taken from this video: https://www.youtube.com/watch?v=wY_BNsxCEi4&t=61s
7. Contact form design, was found on google. The form was taken from website similar to this one: https://colorlib.com/wp/bootstrap-contact-form/
8. Django Contact Form: connecting form to backend : https://www.youtube.com/watch?v=lSgRWA4PMt4
9. "Main page todo app, I found it on the internet. It was taken from the page like https://bootdey.com/snippets/view/Task-Details
10. The form on create/update page were modified according to https://www.youtube.com/watch?v=CVEKe39VFu8
11. Delete page was created from this form: https://bootsnipp.com/snippets/vl4R7
## Acknowledgements
### Special thanks to the following:
- Code Institute
- My Mentor Mo Shami