Everybody wants to find a way to express their personality. Some people express themselves through the cloth they wear everyday, some do it through the cars they drive and some do it through the electronics they use. For certain groups of people, a good way for them to express themselves is through using quotes from famous writers. In a lot of cases, using quote can create a connection that passes through the barrier of time and space, creating a link between the reader and characters in the book. A good quote should not only be saved but also shared with others. We were inspired by this idea and want to enable a better way for people to share their favorite quote with one another. We realize that a lot of quote poster website right now uses a set number of background images that is not only out of context but can be difficult to use from time to time. That is why we want to change it by introducing posterboard to allow everyone to make high quality quote poster and share with their friends.
What it does
After the user puts in the quote and the book where the quote came from, the server will analyze the quote, find the keyword from it and generate 9 images that is related to the quote keyword, book, and the author. The user can then choose any one of them, adjust the theme and front , and then download it onto their computer to share with their friends.
How we built it
We built it using React frontend and a flask backend. We also used a number of APIs in the process and stock photo image provider Unsplash. We have listed all the APIs used in the following list.
Challenges we ran into
The main challenge we had is the deployment. It took us a long time to figure out how to deploy it onto a website. We initially started deploying on Heroku. However, it did not work for us and because Heroku gives less control to the user to configure everything, it was almost impossible for us to debug. So eventually we have to try something else and we decided to try Digital Ocean. For both of us, it is our first time deploying a project onto Digital Ocean so we have to try to figure out all the steps. The issue with Digital Ocean is the fact that there are very few documentations that exist about how to use Nginx and Gunicorn out there with Digital Ocean so we have to experiment with different command and figure out the ones that work. For S3, it is a whole different issue. There are just way too many different articles out there but none of them talks about saving photos onto S3, so we have to read 10-20 articles and try to piece together different information to make it work. However, we eventually manage to figure them out and got a working model completed.
Accomplishments that we're proud of
Our proudest accomplishment is the fact that we went through all of the difficulties from Deployment and eventually made it work. Almost everything we are using is our first time trying it so it was a challenge for us to learn everything, make sure that we can configure all the systems to the right setting, and adjust configurations base on our need. We have to go through a ton of articles, blog posts, and videos to do all of that. We eventually manage to persist and developed a fully functioning website, which we are super proud of.
What we learned
We learnt a ton of things during the process such web services like Nginx, Gunicorn as well as more how to deploy on cloud providers like digital ocean and AWS. Furthermore, we also got a chance to work with different APIs and framework.
What's next for Posterboard
There are mainly two next steps for us, perfecting the UI and scaling up the usage of it so it can allow more traffic. Most of the services we are using is still in their demo mode; we need to boost its capcity to allow more traffic and show it to the public. We also did not spend much time with UI initially, so we probably need to make it better to make the users want to use it. We have overcome most of the technical challenges at this point; but this does not mean we can't make it better. On the technical side, we are considering implementing Google Oauth feature with google so people and keep track of the posters they have built/downloaded. Furthermore, we are considering adding another layer of sentiment analysis to ensure all the photos generated for the background is inline with the overall mood passed through from the quote/book/author. In addition, we are also considering having an autocomplete feature for the book name to make it easier for users to type in their book. This will probably require the import of all the existing book name into a CSV file, which could be a bit more difficult and a bit more for the long term. We have a lot of things planed for it and we are looking forward to bring it to the next level.