Skip to content

codebysnorlax/Django-PingPost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PingPost

Ping-Post is a micro (temporary) blogging app where users can share short messages ("pings") along with pictures, similar to Twitter or Instagram Threads.

get started

  1. Clone the repo: git clone https://github.com/codebysnorlax/Django-PingPost.git
  2. cd into the project: cd Django-PingPost
  3. python -m venv .venv
  4. source .venv/bin/activate (Linux/Mac) or .venv\Scripts\activate (Windows)
  5. pip install -r requirements.txt
  6. python manage.py migrate
  7. python manage.py runserver

Description

PingPost is designed to make posting quick thoughts easy and distraction-free. Users can write short text updates (up to 250 characters), add a photo, and view all posts in a clean timeline. Each user manages their own posts—create, edit, or delete—while the public timeline shows everyone’s updates in reverse order. With Django handling authentication, CSRF protection, and password validation, the app stays secure and reliable. The interface is built with Bootstrap 5, keeping the design responsive and minimal. Overall, PingPost focuses on clarity, usability, and solid Django fundamentals without unnecessary complexity.

Features

  • Create short text posts (+ optional photo)
  • Public timeline of all posts
  • Login & registration with secure password rules
  • Edit & delete only your posts

Project Structure

  • Here’s how the code is organized:
  • PingPost/manage.py → Django entry point
  • PingPost/PingPost/ → Project settings & main URLs
  • PingPost/tweet/ → Core app (models, forms, views, templates)
  • PingPost/templates/ → Shared layouts + auth pages
  • PingPost/static/ → CSS + JS files
  • PingPost/media/ → Uploaded photos (dev only)

The goal was clarity over complexity. Everything revolves around one model: Tweet.

Django handles authentication, sessions, and CSRF protection out of the box

Ownership checks make sure only the author can edit/delete their posts

Bootstrap handles responsiveness with almost no extra CSS

SQLite is the default database so you can run it right away. Later, it could be upgraded with profiles, likes, comments, or even a REST API.

Video Demo

Video Demo:

System Diagram

graph TD
  A[User/Browser] --> B[Project urls.py]
  B --> C[home view]
  B --> D[tweet/urls.py]
  B --> L[accounts/ auth urls]
  D --> E[tweet/views.py]
  E --> F[Templates HTML]
  E --> G[Forms]
  G --> H[Tweet model]
  G --> K[Auth User]
  H --> I[SQLite]
  K --> I
  H --> J[media/photos]
  L --> F
  L --> K
Loading

Simple flow (fallback):

User → urls.py → tweet/urls.py → views → templates/forms → Tweet model → SQLite + media/photos

Note

Some docs are generated by AI, some of the CSS is AI-generated, and a bit comes from third-party sources. But not all of it — I’ve also written some myself. Honestly, dealing with CSS can get really frustrating. For backend logic, I’ve learned from Hitesh Choudhary on his channel Chai aur Code.

About

A Django-based microblogging app where users can post short messages with or without images. Built with authentication.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors