https://github.com/haroonhsa007/linkedin-django-essential
https://github.com/haroonhsa007/linkedin-django-essential
bootstrap5 django-admin djanog python
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/haroonhsa007/linkedin-django-essential
- Owner: Haroonhsa007
- Created: 2025-03-09T14:32:18.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-03-19T18:37:30.000Z (2 months ago)
- Last Synced: 2025-03-19T19:37:29.313Z (2 months ago)
- Topics: bootstrap5, django-admin, djanog, python
- Language: Python
- Homepage:
- Size: 98.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# LinkedIn-Django-Essential
---
# Start Coding with Django
Welcome to the **Start Coding with Django** repository. This project contains all the code examples, challenges, and course materials from a comprehensive Django course. In this course, you learn how to build full-featured Django applications—from setting up a project to implementing authentication, CRUD operations, dynamic web pages, and much more.
---
## Table of Contents
- [Start Coding with Django](#start-coding-with-django)
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [Course Outline](#course-outline)
- [1. Introduction to Django](#1-introduction-to-django)
- [2. Starting Your Django Project](#2-starting-your-django-project)
- [3. Django Built-In User Management](#3-django-built-in-user-management)
- [4. Interacting with Databases using Django ORM](#4-interacting-with-databases-using-django-orm)
- [5. Building Dynamic Webpages](#5-building-dynamic-webpages)
- [6. Building Robust Front-Ends](#6-building-robust-front-ends)
- [7. Django Forms and Validation](#7-django-forms-and-validation)
- [8. Working with Existing Data (CRUD)](#8-working-with-existing-data-crud)
- [9. User-Specific Data and Sharing](#9-user-specific-data-and-sharing)
- [10. Login, Logout, and Signup](#10-login-logout-and-signup)
- [11. Conclusion and Next Steps](#11-conclusion-and-next-steps)
- [Installation](#installation)
- [Usage](#usage)
- [Challenges](#challenges)
- [License](#license)## Introduction
Django is an open-source web framework that lets you build robust web applications quickly and securely with minimal code. This course covers:
- Rapid application development with Django.
- Built-in security features and user authentication.
- Creating and managing dynamic webpages and database-driven applications.
- Utilizing Django’s admin interface, ORM, class-based views, and forms for validation.---
## Prerequisites
- **Python 3.8+** – A virtual environment is recommended.
- **Django 3.2+** – Although this course was built with Django 3.2, later versions are supported.
- A code editor (e.g., VS Code) and a modern browser.
- Basic understanding of HTTP and web development concepts.---
## Course Outline
### 1. Introduction to Django
- Overview of Django’s philosophy: simplicity, rapid development, and security.
- Why Django is a preferred framework for building web applications.### 2. Starting Your Django Project
- Using `django-admin startproject` to create a new project.
- Project structure: `manage.py`, settings, URLs, and initial configurations.### 3. Django Built-In User Management
- Exploring Django’s admin interface.
- Creating and managing users, and applying database migrations.
- Implementing signup, login, and password management.### 4. Interacting with Databases using Django ORM
- Defining models to represent database tables.
- Running migrations and using the Django shell.
- **Challenge:** Adding a "likes" field to a note model.### 5. Building Dynamic Webpages
- Creating views that render HTML using Django’s template language.
- Implementing loops, conditionals, and variable interpolation.
- Using class-based views for list and detail pages.
- **Challenge:** Filtering and displaying popular notes.### 6. Building Robust Front-Ends
- Managing static files (CSS, JavaScript, images) in Django.
- Creating a base template for consistent styling.
- Using Bootstrap to enhance design and layout.
- Dividing templates into reusable parts using the `include` tag.### 7. Django Forms and Validation
- Implementing forms for creating, updating, and deleting data.
- Adding server-side validation with custom error messages.
- Ensuring secure form submissions with CSRF tokens.
- **Challenge:** Custom validation to accept only notes about Django.### 8. Working with Existing Data (CRUD)
- Updating and deleting records using UpdateView and DeleteView.
- Integrating function-based views for custom actions (e.g., upvoting notes).
- **Challenge:** Adding a like button that updates note data securely.### 9. User-Specific Data and Sharing
- Associating notes with users via foreign keys.
- Overriding querysets to display data for the logged-in user only.
- **Challenge:** Marking notes as public or private and generating shareable links.### 10. Login, Logout, and Signup
- Customizing authentication views and templates.
- Implementing a navigation bar that reflects the user's login state.
- Adding signup functionality and integrating redirection after login.
- **Challenge:** Creating a share link for public notes that works for both authenticated and unauthenticated users.### 11. Conclusion and Next Steps
- Recap of what you’ve built and learned.
- Next steps: Exploring unit testing, Django REST framework, and advanced Django topics.---
## Installation
To set up the project locally:
```bash
# Clone the repository
git clone https://github.com/yourusername/your-django-repo.git
cd your-django-repo# Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate# Install Django (and other dependencies if needed)
pip install django# Apply database migrations
python manage.py migrate# Create a superuser for the admin interface
python manage.py createsuperuser# Run the development server
python manage.py runserver
```
---## Usage
- **Admin Interface:** Visit [http://127.0.0.1:8000/admin](http://127.0.0.1:8000/admin) to manage users and view models.
- **Notes App:** Navigate through the various endpoints to:
- Create, update, and delete notes.
- Toggle between public and private notes.
- Share public notes via generated links.
- **Authentication:** Use the custom login, logout, and signup pages to secure your application.---
## Challenges
Throughout the course, several hands-on challenges help solidify your understanding:
- **Adding a Like Feature:** Extend your note model with a “likes” field and update it via a POST request.
- **Filtering Popular Notes:** Use Django’s QuerySet methods to display notes that meet specific criteria.
- **Template Modularization:** Break down your HTML into reusable components using `include`.
- **User-Specific Data:** Ensure that each user only sees their own notes by customizing the QuerySet in class-based views.
- **Public vs. Private Notes:** Implement a toggle for notes’ visibility and secure public sharing.Feel free to explore these challenges further or add your own enhancements.
---
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
---
Happy coding! If you have any questions or suggestions, please feel free to open an issue or submit a pull request.