Did you know that you can navigate the posts by swiping left and right?
Over the past week I built a little web app where anyone can come and record a win of the day. I hope this idea can grow into a nice bright corner of the internet. Celebrate your Win of the Day.
For me, writing down a win of the day is a great way to reflect and recharge. Sometimes it feels like everything is going wrong, but even on days like those I can find something positive to keep me going. It doesn’t have to be big or special, it’s OK to feel good about the little things too. Maybe I did some cleaning, or spent some time outside, or simply got out of bed. We all have those days. And on days when things are going great, it’s exciting to reflect and celebrate.
Everyone has their own strengths and weaknesses that are changing all the time. I built Win of the Day to never publicly attach a username to a win because this isn’t about competition. It’s about individuals each doing their best; it’s about finding happiness in the joy of success for you and for others, no matter how big or how small.
This is yet another Flask app, so I reused a lot of boilerplate code, but also tried a few new packages. This site allows users to login and also has some pages restricted to moderators, so I needed to implement an authentication and authorization scheme.
I hate using social login for random web sites, so everything is happening in flask and my own database. Don’t worry, I didn’t write my own security - I’m salting password values and using a bcrypt library for hashing and password checking.
Speaking of security and passwords, you’ve probably noticed that web browsers are starting to raise more alarms when the browser detects a form transmitting data over an insecure connection. Luckily, my web host makes it super easy to to generate and install certificates from Let’s Encrypt. With a certificate in place, the Flask-SSLify library makes it trivial to force requests to be made over https.
You can browse the code on github. Feedback and pull requests welcome.