Ask HN: What are some good back end website ideas?
I have to program a final project for my ap computer science class and I have programmed some websites before, front and backend, but I don't really have any ideas.
I have looked around online, but most often the suggestion is something boring like a twitter clone, instagram clone, etc.
Preferably it would be something that is more backend intensive, because that is what I will be graded on, but I am open to any suggestions. Thank you!
11 comments
[ 3.3 ms ] story [ 45.7 ms ] threadWhen I was a little younger than your age, I made a whole "virtual currency" that could be moved around by typing numbers into text boxes, just to get some experience using PHP and MySQL. It didn't ever do anything useful, but it was a fun exercise, and more importantly: the fact that I was pursuing one of _my own ideas_ made me more interested in working hard on it.
So my advice would be to pick something simple you like, and then apply all the principles you've learned to it, even if it doesn't always make the most sense. This is just a learning project, so my guess is that some regular rules don't apply!
Personal Music Tracker - You can get new music ideas by scraping content from a community radio station playlist like KCMP (https://www.thecurrent.org/playlist). Run it against a personal database of songs you already know and have the system send you a daily/weekly/monthly list of songs you haven't heard. It's fun to build.
Phone Proxy - Set up a disposable number for yourself on Twilio that will proxy incoming calls against a whitelist of approved numbers. You could do Twilio Studio to build an IVR that prompts the caller to press one to route the call. If they stay on the line you could do fun stuff like transfer to an It's Lenny server or something. It's not difficult to program and will teach you about some phone technology.
IoT Blog Reader - Follow blogs that you like and have them read to you via common IoT devices like Alexa/Google Home. Like an RSS reader but built for speech. Use an RSS reader to pull articles, run transcriptions of the articles with trained ML TTS models, and store the data with SQL. De-dupe the transcriptions based on URL. Use pre configured ML models for text to speech like AWS Polly or GCP Wavenet. Probably way too hard...
TextToSpeech for books - Upload a book. Get emailed the audio transcription. Use pre trained ML models for TTS conversion. Maybe use a SASS company like mailgun for the email part so you can just focus on extracting text from different file formats? Could start with plain text files initially.
Story Point Estimation - Use ML (or basic statistics) to estimate how long JIRA tasks or projects will take to complete. Use a general corpus of data to train an ML model, then feed it a team's data so it can adapt accordingly. There are some whitepapers on it like https://arxiv.org/pdf/1609.00489.pdf but you could look around for easier statistics algorithms to use instead so it's easier to build.
Don't use cloud services. Literally, spin up a VirtualBox VM from where the web server is also hosted. Bonus points if you can spin up a VM from another web server.
I also remember about a side project that involves by crawling HN and displaying the most mentioned books in the comments. I think the author was making a bit of money by having a link to Amazon for each book(and using an affiliate code). You could do something similar but for popular Wikipedia articles for example. Or you could use Reddit as a source and instead of searching for popular books to search for sneakers or music.
Of course, I don't know if these ideas are too simple or too complicated, interesting or not for you and the person who will give you a grade.
On a related note a lot of different comments seem to be mentioning scraping some sort of data from a website on a continual basis. Would I just create a script that is attached to an extra worker that would send its data to the actual database that would in turn be read by the web server? Or would I want to just have the web server itself get the data and write to the database?
That's what I did, but I might have had different requirements. If you don't have a lot to crawl and you don't have to do it very often(once a week or less), you can probably space out the requests enough so that the server doesn't feel it. It helps a lot if you use some caching as well for the website itself in this case. I think it depends a lot on the requirements of the project. But using two machines is safer I think, although it might complicate things a bit.
Keep in mind that there's probably better technical advice out there than mine. I'm a hobbyist developer.