An eBay-like e-commerce auction site that allows users to post auction listings, place bids on listings, comment on those listings, and add listings to a “watchlist.”
- Download the zip file to this repository.
- In your terminal, cd into the 'commerce' directory.
- Run
python manage.py runserver
and visit http://127.0.0.1:8000/
- Backend Framework: Django and Python
- Database Modelling: SQLite
- Front End Languages: HTML, CSS and Javascript
!!! Note: Asides from #6, users needs to be logged in to experience all functionalities.
- Via 'CREATE LISTING' on the main tab.
- Users are required to input a title, description, starting bid price, image (optional) and category.
- Once submitted, user is redirected to the new listing page created
- Via the 'BID' field within the individual listing page.
- Only bids greater than the current highest bid/ starting bid are accepted.
- Else, an error message will be presented.
- Add Item: click the 'ADD TO WATCHLIST?' button within the individual listing page.
- Item can then be found under the 'WATCHLIST' page (accessed by clicking button in main tab)
- Remove Item: in the 'WATCHLIST' page, click the 'x' button on the individual listing to remove the item.
- Via the comment textarea within the individual listing page.
- Comments are displayed in reverse-chronological order.
- Done via the 'CLOSE LISTING' button at the end of the individual listing page.
- This is only visible to the owner of a listing (only the owner can close the listing).
- When listing is closed,
- the highest bidder is noted as the winner of the auction,
- the listing is deactived (i.e. not visible on the ACTIVE LISTING page), and
- users can no longer bid/add to watchlist/comment on the listing
- If the curent user is on a closed listing page, and they are the highest bidder, the page will announce the user as the winner of the auction.
- Via the search bar in the main menu.
- The search goes through the listing title database.
- Users are directed to a search result page with potential listings that contain the search query as a substring in their title (eg. 'apple' will show 'Apple iPhone 12 Pro Max' as a search result).
- views.py: name = index
- Shows all the active listings on the site (aka. listings available for bidding)
- views.py: name = listing
- This can be accessed by clicking on a listing.
- Shows all details of the listing, bids and comments
- views.py: name = category
- Shows listings of a particular category (category is determined during the listing creation).
- views.py: name = watchlist
- Shows all listings that the user has chose to add to their watchlist.
- views.py: name = create
- For users to create their page listings.
- views.py: name = search
- Shows results from a user's search.
- views.py: name = login
- views.py: name = register