Commercial website

Development of a commercial website using Django framework.

Languages

  • Python
  • JavaScript
  • SQL
  • HTML
  • SCSS

Technologies

  • Django

    Django is an open-source high-level Python web framework that is primarily used for backend development of complex, database-driven websites.

  • MySQL

    MySQL is an open-source relational database management system (RDBMS).

  • Bootstrap

    CSS framework directed at responsive, mobile-first front-end web development.

  • htmx

    A JavaScript library that gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML so you can build modern user interfaces with the simplicity and power of hypertext.

  • Pytest

    The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.

  • GitHub

    Used for the project's continuous integration.

  • Coverage

    A tool for measuring code coverage of Python programs, typically during test execution.

Description

The project is a fully fledged Django web application with more than 350 indexed pages.

While using a framework for backend development needs, the project implements some SPA (Single-page application) features through the use of htmx. It allows to give the application a more “reactive” feel and improve loading times. The htmx technology is used in pruducts gallery to create an infinite scroll similar to popular social media websites. The search as you type, and form processing also make use of the this technique to replace only the targeted parts without reloading the whole page.

The website has a “Calculator” for the cost of services the company provides. Django forms and sessions were used for the development of this functionality.

Django templating system allows to easily make list and detail pages for any number of products which are objects stored in MySQL database.

The customized Bootstrap frontend library gives the site a touch of brand identity.

Thanks to the Django Administration site now the company employees with no IT background can manage website content.

Topics

  • Compress and minify asset files like SCSS, JavaScript
  • Customize Bootstrap
  • Managing static files during development and production
  • Managing and serving media files
  • Forms processing with Django
  • Making the web application more reactive by integrating htmx
  • Setting up a database to use for the site backend storage of data
  • Using sessions
  • Image processing on the fly. Resize, edit, watermark images programmatically.
  • Setup Django Administration site
  • Load images with Javascript
  • Tagging system and recommendations algorithm
  • Pagination and infinite scroll for product galleries
  • Search as you type functionality
  • List and product detailed pages
  • Writing unittests and integrating Pytest framework
  • Using unidecode for slugs
  • Running python scripts for project internal management
  • Setting up a system for counting views
  • Deploy. Managing a Linux server, setting up a CI (continuous integration), backup, system checks, logging
  • SEO (search engines optimization). Meta tags, redirects, statistics console, robots, social media meta tags, sitemap, custom 404 page.
Screenshot of the project