Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ghosts6/to-do-list
The To-Do List Application is a task management tool built with Django. It features a robust backend with REST API and ORM, and a user-friendly frontend using HTML, CSS, and JavaScript. Manage tasks, authenticate users, reset passwords, and access FAQs with ease.
https://github.com/ghosts6/to-do-list
css django django-orm django-rest-framework html js task-management to-do-list
Last synced: about 1 month ago
JSON representation
The To-Do List Application is a task management tool built with Django. It features a robust backend with REST API and ORM, and a user-friendly frontend using HTML, CSS, and JavaScript. Manage tasks, authenticate users, reset passwords, and access FAQs with ease.
- Host: GitHub
- URL: https://github.com/ghosts6/to-do-list
- Owner: Ghosts6
- Created: 2024-09-13T00:34:44.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-09-27T17:27:26.000Z (about 2 months ago)
- Last Synced: 2024-09-30T12:21:04.761Z (about 2 months ago)
- Topics: css, django, django-orm, django-rest-framework, html, js, task-management, to-do-list
- Language: CSS
- Homepage:
- Size: 2.82 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![baner](https://github.com/Ghosts6/Local-website/blob/main/img/Baner.png)
# π To-Do List App
Welcome to the To-Do List App! This project allows users to manage tasks with features for user authentication, task management, and more. Itβs built with Django and includes automated testing with GitHub Actions.## π Features
User Authentication: Sign up, log in, and manage user profiles.
Task Management: Create, update, and delete tasks with different statuses.
Password Management: Forgot password functionality with secure reset tokens.
FAQs: View and manage frequently asked questions.
Admin Panel: Accessible for managing users, tasks, and FAQs.## π οΈ Technologies Used
Django: Web framework for building the application.
Django REST Framework (DRF): For building RESTful APIs.
GitHub Actions: CI/CD for automated testing and deployment.
Bcrypt: For securely hashing passwords.
SQLite: Database used for development (can be changed to PostgreSQL or others for production).## π Getting Started
Prerequisites
Python 3.7, 3.8, or 3.9
pip (Python package installer)
Git### Clone the Repository
To get started, clone the repository:
```sh
git clone https://github.com/Ghosts6/to_do_list
cd to_do_list
```
### Install Dependencies
Install the required packages:
```sh
python -m pip install --upgrade pip
pip install -r requirements.txt
```
### Run Migrations
Apply the initial migrations to set up the database:
```sh
python manage.py migrate
```
### Create a Superuser
Create a superuser account to access the Django admin panel:
```sh
python manage.py createsuperuser
```
### Run the Development Server
Start the Django development server:
```sh
python manage.py runserver
```
Visit http://127.0.0.1:8000 in your web browser to see the application in action.## π§ GitHub Actions Workflow
This project includes a GitHub Actions workflow for continuous integration. The workflow runs tests on push and pull request events.Workflow File
The configuration is located in .github/workflows/django.yml. It performs the following steps:Check Out Code: Retrieves the latest code from the repository.
Set Up Python: Configures the Python environment.
Install Dependencies: Installs packages from requirements.txt.
Run Tests: Executes Django tests.
Running Workflow
The workflow is automatically triggered on:Push: When changes are pushed to the main branch.
Pull Request: When a pull request is created or updated.
You can view workflow runs and their status in the Actions tab of the repository on GitHub.## 𧩠Endpoints
### Authentication:
Sign Up: POST /api/signup/ - Register a new user.
Login: POST /api/login/ - Authenticate and log in.
Forgot Password: POST /api/forgot/ - Request a password reset link.
Reset Password: POST /api/reset/// - Reset the user password.### Task Management:
List Tasks: GET /api/tasks/ - Retrieve a list of tasks.
Create Task: POST /api/tasks/ - Add a new task.
Update Task: PUT /api/tasks// - Update an existing task.
Delete Task: DELETE /api/tasks// - Remove a task.### FAQs:
List FAQs: GET /api/faqs/ - Retrieve a list of frequently asked questions.
Add FAQ: POST /api/faqs/ - Create a new FAQ.
Update FAQ: PUT /api/faqs// - Update an existing FAQ.
Delete FAQ: DELETE /api/faqs// - Remove an FAQ.## π½οΈ Project Video Demo
[![Watch the demo](https://github.com/user-attachments/assets/aff565bb-03a4-44d3-8dc1-ceee3a33d1d6)](https://youtu.be/Lv3cPE0Yc0c)Click the image above to watch a video demonstration of the project.
## β οΈ Project Limitations and Goals
### Warning: This project is not designed to be responsive.
The primary focus of this project is to demonstrate the interaction between the API, JSON data, and Django models. The current implementation does not include responsive design features, which means that the user interface may not adapt well to different screen sizes or devices.### Key Points:
- **Main Goal**: The project is intended to work with API endpoints and handle JSON data effectively.
- **Models**: It showcases the usage of Django models for task management and user authentication.
- **UI Design**: Responsive design and cross-device compatibility are not addressed in this project.