create account

webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1] by xves

View this thread on: hive.blogpeakd.comecency.com
· @xves · (edited)
$14.30
webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]
We'll take a little break from trying to refine my personal portfolio and move on to a real project I've actually agreed to create for a client - a website for a local heavy music festival for next summer. I've already bought the domain and hosting for the site but I'm nowhere near ready to deploy it. I've set myself a goal for the site to be ready before / at Christmas. I think that's a good goal, about half a year before the festival actually takes place. 

https://files.peakd.com/file/peakd-hive/xves/DnOWW6Jy-bbf.jpg<center><sup>(Graphics by [Black Bela Art & Tattoo](https://www.facebook.com/blackbelatattoo)).</sup></center>



The two major features of the website will be responsiveness and the site being multilingual - visitors will be able to choose between Estonian, Finnish and English. The site should have basic information about when and where the festival takes place, information about the lineup, some info about the festival itself (when was the first time it took place, etc), some info about the venue it takes place in, a list of sponsors, a little FAQ section and of course where to buy festival passes / tickets. Not in that exact order.

<div class="pull-right">https://files.peakd.com/file/peakd-hive/xves/jhw78OPN-yx.jpg</div> <br>

At first I thought I'd be able to build it all vanilla - that is, using basic HTML, CSS and JS, no frameworks, but with the localization feature I understood it might get a bit too difficult. Last month I took part in a Vue.js course  that also touched a bit of Sass and I'm thinking this project is perfect for practicing those skills.

I actually started working on this project before the Vue course but didn't make it too far. I made a responsive navbar with a dropdown for changing languages (functionless) and a footer with some contact info and links to social media accounts + some placeholders inbetween. 

It was all under a private repo and I last pushed commit to it 29 days ago. A few days ago I started a new repo and will abandon the old one. In the new repo I already created a new Vue CLI project and added the Vue-i18n plugin for localization. 

<br>

https://files.peakd.com/file/peakd-hive/xves/qylCPaA2-vueproj.png <center><sup>(This is what a new blank Vue project looks like).</sup></center>


#### Getting started
<hr>


I decided to add the multilanguage functionality to the project right from the start so there would be less hassle later on. A little bit of research revealed the best way of implementing localization on a Vue project is the [Vue-i18n plugin](https://kazupon.github.io/vue-i18n/) made by Kazuya Kawaguchi. The link I provided in the last sentence has all kinds of useful information about the plugin aswell as a guide for getting started, formatting, etc. Unfortunately I'm not *that* comfortable with Vue projects yet, so I failed to get things working with the official Getting Started guide. 

I was on the edge of giving up until after Googling for a while I found what I'd call the best ''... for Dummies'' tutorial yet - [''The Ultimate Guide to Vue Localization with Vue-i18n''](https://phrase.com/blog/posts/ultimate-guide-to-vue-localization-with-vue-i18n/) by Mohammad Ashour on Phrase. It's a tutorial based on building a Vue SPA (Single Page Application) mock-up e-commerce storefront specialized in gourmet coffees from around the world. Well, that's not exactly what I'm building but it has some of the features I'm looking for - like a functioning navbar where visitors can choose their preferred language and card components for displaying information (that's how I'm going to display the festival lineup).

Why I really liked Mohammad's tutorial is because he shows people how to do things step by step and explains the purpose and functionality of different files, folders and functions in detail.

Yesterday I got as far as to the ''Basic Translation Messages'' section in the tutorial, meaning I've got the localization feature working, the language chooser in the navbar working and the site automatically being in the language based on the visitor's browser settings (if the visitor's browser is in Estonian, the site is in Estonian, if it's in Finnish, the site's in Finnish, if it's in English, it's in English... any other languages should also fallback to the site being in English).

https://files.peakd.com/file/peakd-hive/xves/Mw7jB0jF-navbar.png

(*Pardon* me if the Finnish is wrong, I don't really speak Finnish. Probably going to use the help of Google Translate, Finnish-speaking people on Discord and the client I'm making the site for to provide the right Finnish translations after on).

I've also created a Cards component that has Card components looped in it using the [v-for directive](https://vuejs.org/v2/api/#v-for). The cards get information from a .json file which is an array of objects with the values of (band) name, genre, country (which I'll actually remove because this year they're all local) and imgUrl (which I'll provide later on).

https://files.peakd.com/file/peakd-hive/xves/Fy2CUwht-cardskelett.png

As for the CSS (later probably changing to SCSS), I ''copied'' (typed along, not copy-pasted) all the styling he has in his tutorial for starters so things are *far* from how they'll look like in the end.
πŸ‘  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorxves
permlinkwebdev-musicfestivalwebpage-1
categoryhive-169321
json_metadata"{"app":"peakd/2020.08.3","format":"markdown","description":"About a real project I'm working on","tags":["webdev","front-end","project","vue","development","programming","it","vuejs","sass","scss"],"links":["https://www.facebook.com/blackbelatattoo","https://kazupon.github.io/vue-i18n/","https://phrase.com/blog/posts/ultimate-guide-to-vue-localization-with-vue-i18n/","https://vuejs.org/v2/api/#v-for"],"image":["https://files.peakd.com/file/peakd-hive/xves/DnOWW6Jy-bbf.jpg","https://files.peakd.com/file/peakd-hive/xves/jhw78OPN-yx.jpg","https://files.peakd.com/file/peakd-hive/xves/qylCPaA2-vueproj.png","https://files.peakd.com/file/peakd-hive/xves/Mw7jB0jF-navbar.png","https://files.peakd.com/file/peakd-hive/xves/Fy2CUwht-cardskelett.png"]}"
created2020-09-04 08:59:45
last_update2020-09-09 09:34:54
depth0
children10
last_payout2020-09-11 08:59:45
cashout_time1969-12-31 23:59:59
total_payout_value7.154 HBD
curator_payout_value7.150 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,275
author_reputation12,295,059,905,546
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,442,952
net_rshares44,981,879,070,017
author_curate_reward""
vote details (42)
@cadawg ·
$0.24
Interesting, I'm yet to dip my feet in the Vue pool, as it's taken me long enough to get to grips with react. Looking solid and more well built than my projects though πŸ˜‚

Keep up the great work & thanks for posting to the programming community!
πŸ‘  ,
properties (23)
authorcadawg
permlinkre-xves-qg4tzg
categoryhive-169321
json_metadata{"tags":["hive-169321"],"app":"peakd/2020.08.3"}
created2020-09-04 11:45:15
last_update2020-09-04 11:45:15
depth1
children0
last_payout2020-09-11 11:45:15
cashout_time1969-12-31 23:59:59
total_payout_value0.118 HBD
curator_payout_value0.118 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length244
author_reputation96,031,694,625,116
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,444,833
net_rshares1,206,507,696,541
author_curate_reward""
vote details (2)
@insaneworks · (edited)
$0.26
That's what Finns here in Hive are for. Translation aid! :)

Kotisivu and Suomi are just the right words. Festivaalisti could be Festivaalista which means about the festival. So only one letter off. Couldn't find anything else written in Finnish. Instead of kotisivu some may use the word etusivu. (etu = front) It's a matter of opinion which to use.

I assume translating with Google from Estonian to Finnish would give more accurate results than translating from English to Finnish so I think that will carry you pretty far. Especially if you translate sentences, not only individual words.
πŸ‘  ,
properties (23)
authorinsaneworks
permlinkre-xves-qg4not
categoryhive-169321
json_metadata{"tags":["hive-169321"],"app":"peakd/2020.08.3"}
created2020-09-04 09:29:15
last_update2020-09-04 09:37:54
depth1
children4
last_payout2020-09-11 09:29:15
cashout_time1969-12-31 23:59:59
total_payout_value0.130 HBD
curator_payout_value0.131 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length592
author_reputation127,331,832,849,417
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,443,196
net_rshares1,334,085,927,102
author_curate_reward""
vote details (2)
@xves ·
$0.25
Thanks! :D 
There was also ''Festivaalisti'' which I hope means ''about the festival''?
πŸ‘  
properties (23)
authorxves
permlinkre-insaneworks-qg4nz3
categoryhive-169321
json_metadata{"tags":["hive-169321"],"app":"peakd/2020.08.3"}
created2020-09-04 09:35:27
last_update2020-09-04 09:35:27
depth2
children3
last_payout2020-09-11 09:35:27
cashout_time1969-12-31 23:59:59
total_payout_value0.126 HBD
curator_payout_value0.127 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length87
author_reputation12,295,059,905,546
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,443,249
net_rshares1,299,331,811,132
author_curate_reward""
vote details (1)
@insaneworks ·
$0.25
I noticed, after a while, edited my answer. :)
πŸ‘  
properties (23)
authorinsaneworks
permlinkre-xves-qg4pju
categoryhive-169321
json_metadata{"tags":["hive-169321"],"app":"peakd/2020.08.3"}
created2020-09-04 10:09:30
last_update2020-09-04 10:09:30
depth3
children2
last_payout2020-09-11 10:09:30
cashout_time1969-12-31 23:59:59
total_payout_value0.124 HBD
curator_payout_value0.125 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length46
author_reputation127,331,832,849,417
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,443,621
net_rshares1,273,376,435,118
author_curate_reward""
vote details (1)
@nrg ·
tee keelevalik lipukujulisteks nuppudeks. On veits rohkem standartsem
πŸ‘  
properties (23)
authornrg
permlinkqg4mnz
categoryhive-169321
json_metadata{"app":"hiveblog/0.1"}
created2020-09-04 09:07:12
last_update2020-09-04 09:07:12
depth1
children3
last_payout2020-09-11 09:07:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length69
author_reputation1,371,928,686,249
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,443,026
net_rshares8,567,519,579
author_curate_reward""
vote details (1)
@xves ·
$2.03
Jah, ma tean, jah, ma teen. Praegu see, mis ma tegin, oli funktsionaalsuse lisamine, disaini ma alles hakkan kΓΌlge vorpima. :D TΓ€nks.
πŸ‘  , , , , , , , , , ,
properties (23)
authorxves
permlinkre-nrg-qg4mzh
categoryhive-169321
json_metadata{"tags":["hive-169321"],"app":"peakd/2020.08.3"}
created2020-09-04 09:14:06
last_update2020-09-04 09:14:06
depth2
children2
last_payout2020-09-11 09:14:06
cashout_time1969-12-31 23:59:59
total_payout_value1.014 HBD
curator_payout_value1.014 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length133
author_reputation12,295,059,905,546
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,443,087
net_rshares7,878,060,233,249
author_curate_reward""
vote details (11)
@misterengagement ·
<center>  Thank you for your engagement on this post, you have recieved <code>ENGAGE</code> tokens.</center>
properties (22)
authormisterengagement
permlinkre-re-nrg-qg4mzh-20200904t092922z
categoryhive-169321
json_metadata"{"app": "beem/0.24.4"}"
created2020-09-04 09:29:24
last_update2020-09-04 09:29:24
depth3
children0
last_payout2020-09-11 09:29:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length108
author_reputation4,086,989,259,756
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,443,198
net_rshares0
@nrg ·
!ENGAGE 25
properties (22)
authornrg
permlinkqg4noj
categoryhive-169321
json_metadata{"app":"hiveblog/0.1"}
created2020-09-04 09:29:09
last_update2020-09-04 09:29:09
depth3
children0
last_payout2020-09-11 09:29:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length10
author_reputation1,371,928,686,249
root_title"webDev() { MUSIC_FESTIVAL_WEBSITE; } [#1]"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,443,194
net_rshares0