Inspiration

My latin teacher, Mr Gebhardt, mentioned this thing that Ancient Romans did with the Aeneid which was reading a random line and taking it as an oracle. I instantly put that in my list of coding ideas, and the idea seemed like the perfect coding project.

What it does

The main feature of the website is picking a random book and line number from the Aeneid, then pulling a corresponding group of 3 lines from both an English and Latin copy of the text. With that, you can interpret the passage as an indicator of your future.

How I built it

First, I spent some time finding the Latin text and cleaning it up with a Python script, then spent considerable time finding an English translation that was accurate to the original Latin line numbers, and cleaning that one up too. I then went through tutorials for using React and Next.js, and I built up my website from there. Finally, I styled the website with Tailwind CSS and had some fun with the hover:, selection:, and active: states.

Challenges I ran into

I would say the biggest challenges were cleaning up the English text as well as the learning curve that I had with Next.js, especially with the interaction between Server Components and Client Components.

Accomplishments that we're proud of

I like the way it looks with the color scheme, and I am happy about the fact that I was able to finish the project on time without any major errors. (I don't think there are any errors in fact, but please contact me if you find any bugs!!)

What we learned

I learned Next.js and React as my biggest takeaways, but I also got some good practice and a deeper understanding of Tailwind CSS, especially with things like spacing and organization on a screen.

What's next for sortes vergilianae

The website looks pretty basic, but other than appearance what I wanted to do (and spent a lot of time trying to do but didn't work) is having the prophecy stay in the user's cookies until they click the New Prophecy button. That way if they go to the home or about page and come back to /prophecy, it won't generate a new prophecy. However, localStorage was not cooperating with me so I dropped it after an hour or two. So yeah that's one thing I would like to have in the future, and hopefully even expand this concept into not just the Aeneid but more of Vergil's texts and other famous works!

Built With

Share this project:

Updates

posted an update

Note about the video:

I said 17,000 lines, but I just updated the about page with the real line count of the Aeneid (9,883 lines). I said 17,000 because that's close to the total line count (English + Latin).

Log in or sign up for Devpost to join the conversation.

posted an update

UPDATE:

I have updated the code so that it accounts for invalid line numbers. Details:

Since the code picks a line number and then selects from [lineNumber] to [lineNumber - 3], I have made the code regenerate the lineNumber as long as [lineNumber - 3] < 1

Log in or sign up for Devpost to join the conversation.