An open API service indexing awesome lists of open source software.

https://github.com/william-fernandes252/auctions

E-commerce website for opening and participating in auctions built with Django
https://github.com/william-fernandes252/auctions

celery django django-rest-framework docker docker-compose postgresql

Last synced: 3 months ago
JSON representation

E-commerce website for opening and participating in auctions built with Django

Awesome Lists containing this project

README

          

# Auctions

CS50w Auctions Project allong with a full featured API.

![Listings page](/screenshots/main.jpg)

![REST API](/screenshots/api.jpg)

## About

The course third project consists of a eBay-like e-commerce auction site, build with **Django**, that allow users to post auction listings, place bids on listings, comment on those listings, and add listings to a “watchlist”.

As custom features (in addition to those required by the course) I implemented:

- **Time limited listings**. The users are required inform in advance (during the creation of a auction) a duration for listing, wich can selected between five options: one day, three days, one week, two weeks or one month;
- A custom styling with the **Bootstrap framework**, wich includes a navigation bar with a dropdown for navigation categories and a inline count of items in the watchlist;
- A **search bar**, where the users can query for listings titles;
- And a **flash messages** system with the Django messages functionallity, where the users are informed about their operations in the app, like posting bids and closing actions;
- An API for with the Django REST Framework, where a client can retrieve the data from the database in JSON format;
- A task queue system (with the Celery framework and Redis as broker and backend), that is used to store and execute scheduled and periodic tasks in the backgroud;

Also, during this project I could learn about

- The **Object Relational Mapping** (ORM) system that Django provides as a **database-abstraction API** to develop data driven web applications;
- Creation of Django Models to represent the data that the users can interact with;
- **CRUD** operations in Django, including the use of the **QuerySet** functionallity;
- Django Forms functionallity, including model based forms, rendering of form fields on the web pages and users input processing from Django Forms;
- Security in web forms, including Cross-site Request Forgery (CSRF) attacks and the csrf tokens that Django provides to defend against them;
- User authentication;
- Context managment in dinamically generated web pages;
- Unit testing with Python unittest and the Django Tests extension for it;
- Docker consteiners and the importance of standardization of environments during web development for conpatibility assurence;
- Different database management systems and paradigms, like Redis, as a NoSQL database and PostgreSQL as relational database;
- RESTfull APIs development.

## Project Snapshot

Login page

![Login page](/screenshots/login.jpg)

Registration page

![Registration page](/screenshots/register.jpg)

Listing page

![Listing page](/screenshots/listing.jpg)

Search

![Serch](/screenshots/search.jpg)

Categories menu

![Categories menu](/screenshots/categories.jpg)

Create Listing page

![Create Listing page](/screenshots/create.jpg)

Flash messages

![Flash messages](/screenshots/messages.jpg)

Watchlist

![Watchlist](/screenshots/watchlist.jpg)