TechCircle - tech community blog website

Table of Contents

Overview

  • Welcome to my portfolio project, This project is a tech community blogging website that provides a platform for individuals interested in tech to share their thoughts, ideas, opinions, and information.
  • You can access a blog post about it here.
  • You can access the live demo here.

Built With

  • The project website is built using
    • Python
    • Django
    • HTML
    • CSS
    • Bootstrap
  • It also utilizes
    • Django-mail for sending password reset emails to users,
    • pillow for profile image resizing,
    • crispy for elegant and customizable forms
    • TypedJs for typeing animation on home section,
    • VScode as IDE,
    • git and github as version control...

File structure

    .
    ├── blog
    │   ├── admin.py
    │   ├── apps.py
    │   ├── __init__.py
    │   ├── migrations
    │   │   ├── 0001_initial.py
    │   │   ├── 0002_alter_post_date_posted.py
    │   │   ├── 0003_category_post_category.py
    │   │   ├── 0004_post_likes.py
    │   │   ├── __init__.py
    │   │   └── __pycache__
    │   │       ├── 0001_initial.cpython-310.pyc
    │   │       ├── 0002_alter_post_date_posted.cpython-310.pyc
    │   │       ├── 0003_category_post_category.cpython-310.pyc
    │   │       ├── 0004_post_likes.cpython-310.pyc
    │   │       └── __init__.cpython-310.pyc
    │   ├── models.py
    │   ├── __pycache__
    │   │   ├── admin.cpython-310.pyc
    │   │   ├── apps.cpython-310.pyc
    │   │   ├── __init__.cpython-310.pyc
    │   │   ├── models.cpython-310.pyc
    │   │   ├── urls.cpython-310.pyc
    │   │   └── views.cpython-310.pyc
    │   ├── static
    │   │   └── blog
    │   │       └── main.css
    │   ├── templates
    │   │   └── blog
    │   │       ├── about.html
    │   │       ├── base.html
    │   │       ├── categories.html
    │   │       ├── category_form.html
    │   │       ├── category_posts.html
    │   │       ├── home.html
    │   │       ├── post_confirm_delete.html
    │   │       ├── post_detail.html
    │   │       ├── post_form.html
    │   │       └── user_posts.html
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── db.sqlite3
    ├── django_project
    │   ├── asgi.py
    │   ├── __init__.py
    │   ├── __pycache__
    │   │   ├── __init__.cpython-310.pyc
    │   │   ├── settings.cpython-310.pyc
    │   │   ├── urls.cpython-310.pyc
    │   │   └── wsgi.cpython-310.pyc
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── manage.py
    ├── media
    │   ├── default.jpg
    │   └── profile_pics
    │       ├── male.jpg
    │       ├── male_OKdATbh.jpg
    │       ├── male_UZ0xliT.jpg
    │       ├── male_yNuqvk5.jpg
    │       └── portfolio-7.PNG
    ├── __pycache__
    │   └── manage.cpython-310.pyc
    ├── README.md
    ├── requirements.txt
    ├── tree.txt
    └── users
        ├── admin.py
        ├── apps.py
        ├── forms.py
        ├── __init__.py
        ├── migrations
        │   ├── 0001_initial.py
        │   ├── __init__.py
        │   └── __pycache__
        │       ├── 0001_initial.cpython-310.pyc
        │       └── __init__.cpython-310.pyc
        ├── models.py
        ├── __pycache__
        │   ├── admin.cpython-310.pyc
        │   ├── apps.cpython-310.pyc
        │   ├── forms.cpython-310.pyc
        │   ├── __init__.cpython-310.pyc
        │   ├── models.cpython-310.pyc
        │   ├── signals.cpython-310.pyc
        │   └── views.cpython-310.pyc
        ├── signals.py
        ├── templates
        │   └── users
        │       ├── login.html
        │       ├── logout.html
        │       ├── password_reset_complete.html
        │       ├── password_reset_confirm.html
        │       ├── password_reset_done.html
        │       ├── password_reset.html
        │       ├── profile.html
        │       └── register.html
        ├── tests.py
        └── views.py

Features

  • The project includes the following sections:
    • User registration, autentication and authorization
    • login and logout
    • creating and updating User profile
    • viewing, creating, updating and deliting posts
    • viewing, creating, updating and deliting category
    • sorting interms of topic, and author
    • proper paginations
    • etc

Things to include in near Future

- Group chating
- Event organizing

Usage

First clone the repository from Github and switch to the new directory:

$ git clone https://github.com/Yohannes90/Django-blog
$ cd Django-blog

Create project virtualenv for project:

$ python3 -m venv ./venv

Activate the virtualenv for project:

$ source ./venv/bin/activate

Install project dependencies:

$ pip install -r requirements.txt

create super user:

$ django-admin createsuperuser

Then simply apply the migrations:

$ python manage.py migrate

You can now run the development server:

$ python manage.py runserver

Contact

Medium LinkedIn Discord

Acknowledgements

I would like to acknowledge the following sources for their contributions: