This is an online auction app system, built with python django framework.
The app is live at: https://shifats-auction-app.herokuapp.com/
Steps Followed:
-
Initialized the project and added an app named accounts. Configured the media folder for storing media files.
-
Designed the database models named
AuctionProduct
andBidder
for managing data.AuctionProduct
has many-to-one relationship with theUser
model andBidder
has many-to-one relationship withAuctionProduct
model. -
Added the necessary views to the project for different relative routes.
-
Implemented the user login-registration system.
-
Styled the pages with css and bootstrap.
- Implemented a gallery view.
- Added login restrictions to relevent pages.
- Added a create button that gets the user to a form page to post a new auction item.
- Added another functionality so that a user can place bids but not the post owner.
- Added functionality so that the users can interect the auciton posts with in auction end date and time.
- During this time users can update or delete there bids.
- After an auction finishes the interactibility of the post will be disabled and the winner will be shown in the page.
- Added the appropriate routing for admin dashboard.
- The admin dashboard is not completed as required yet.
- Added some custom styling with help of bootstrap 4 in different views. Though the forms are not styled yet.
- Learnt django framework. Took help from youtube and the beautiful djnago documentation.
- The very first challenge was user authentication system. I took help from youtube and django documentations to overcome this.
- Used custom python wrapper to manage logged in users to not be able to go to login or registration pages.
- In some cases reversing from a dynamic page to previous dynamic page is needed. For that I looked up in the official documentation how to implement this funciotnality.
- Designing the database: I had some knowledge about how relational databases work and sql. So after spending some time in the documentation I was able to design the database for this project.
- Database operations: Learnt how to do basic crud and querry operations on django models.
- Upload image to server and render the image: At first it was not functioning correctly as expected. So I researced how to make it work in the internet. Several stack overflow posts helped me out here. I learned how POST method works for images and files works a bit differently than that for text/strings.
- Though I have basic knowledge about html5 stack, I never worked with bootstrap before. I found out that bootstrap has a very well documentation and gained a better knowledge on bootstrap.
- I learnt how I can add custom styling to django model form objects by modifiying the attributes using python code.
- Timezones: used python pytz to match python's builtin datetime objects with django datetime objects. Timezone used Asia/Dhaka.
- Deploying to Heroku.
- Bootstrap for frontend styling
- pytz for managing timezone. I used 'Asia/Dhaka'
- Pillow for managing images
- gunicorn and whitenoise for heroku deployment
- Learnt user authentication system
- URL routings
- Bootstrap
- django database models
- django forms
- user specific url routing
- managing static and media files
- deployment to heroku
- function base views
- django templates
- djnago models crud operations
- working with date and time
- Django Documentation
- Tech With Tim
- Dennis Ivy
- John Elder from codemy.com
- Corey Schafer
- Some Stack Overflow Searches:
As no external database service like aws is provided so DEBUG=False will not be able to handle the media files as expected. The reason why DEBUG=True is kept in the deployment.
- Convert the view functions to class views to implement cleaner and more efficient code.
- Complete the admin dashboard
- Implement styling to the form views.
username: shifat password: Brave1234
username: ashique password: Brave1234