This project is the official Frontend codebase of kodilan.com which is a software related job board for Turkey.
Tech Stack
This project based on Vue stack and uses Vuex, Vue Router and Vue CLI.
Ajax Requests
To handle AJAX requests, we use axios. The data we fetch from the server will unlikely change during a user session, so we cache responses using an Axios Middleware called axios-extensions. This makes our app blazingly fast in between page changes. For the best user experience, we also maintain the scroll position between pages changes, thanks to Vue Router's Scroll Behavior feature.
SEO
Since kodilan.com is a Single Page Application job posting board, SEO plays a very critical role in our organic growth. To generate dynamic page title, keywords, meta tags and Open Graph tags, we use vue-meta from Nuxt team. On top of that, we use Prerender.io to serve SEO friendly HTML to search engines.
Running project locally
We use yarn as our package manager and you should have yarn installed on your machine to be able to run this project locally. After that you can run the following commands in order.
- yarn install
- yarn serve
CHANGELOG
Please take a look at the CHANGELOG file.
Contributors
- Fatih Acet
- Emir Karşıyakalı
- Didem Acet
- Erdoğan Bulut
- Mehmet Ersan Uzun
- Tugay Yaldız
- Olga Bulat
- Barış Kartal
- Ali Ertan Biberoğlu
- Ali Gören
- Furkan Köse
- İlker Demir
- Berkan Sivri
More content
You can take a look the following video to deep dive into the codebase.
Add unit tests to Travis and generate coverage badge
With this PR we added Jest unit tests. Now we should add unit tests to Travis pipeline as the first step. Then we should generate a coverage report and add coverage badge to README.
Close Subscribe component after user subscribed
After user clicks
subscribe
, theSubscribe component
should be closed.I also wrapped inputs and button in a form so that a user can also submit by pressing
Enter
, and made some styling changes to make it look better on smaller screens.There seems to be a lot of changes, but most changes are due to linter applying
.eslintrc.js
or.editorconfig
in Webstorm, I guess.countries.js changed as locations.js.
countries.js changed as locations.js. This closes #1
Additionally, the CountrySelect.vue file has also changed.
@fatihacet What do you think? CountrySelect should change as LocationSelect?
router scroll behavior
It is a little bit annoying to scroll top, when clicking date periods (today, this week, this month) on home page. So, a field in meta object might be use for such situations to keep scroll on clicked router link.
Paginate
Tüm ilanların listelendiği sayfada paginate olmadığı için yavaşlama olduğunu farkettim ve daha fazla ilan geleceğini düşünerek paginate yaptım
İlanlar sayfasına direk belli bir sayfaya gidilebilmesi için route(/ilanlar/sayfa/5) eklendi. İlanlar sayfası üzerinde sayfa değiştirildiği zaman url deki sayfada değişiyor ilanları çekmek dışında ekstra request atmıyor yani sıfırdan render olmuyor kontrol ettim
Etikete ait ilanlar ve Arama gibi sayfaların api tarafında limit olmadığı için o sayfalara eklemedim api tarafındaki düzenlemeden sonra ekleyebilirim
locationselect search bug fix
Based on issue #41 opened by @fatihacet
LocationSelect component search bug fixed (e.g 'izmir'). Also, modified English text on dropdown when no result found.
'JobPosting' schema markup added for improving SEO
https://jobs.google.com/about/
Google iş ilanlarında zengin sonuçlar için gerekli markup eklendi
Örnek iş ilanı: https://kodilan.com/ilanlar/alkosoft-bilisim-senior-unreal-engine-vr-game-developer
Sonuç:
Not: Code-İnput yazan yerler Google'ın koyduğu dummy text oralarda kodilan.com olacak.
Second listing add problem
The problem is that the URL still exists when the save is complete. Even if we click the button, the page does not refresh because the application is SPA.
My Solution:
QA issue for v1.2.0
Open source notification topbar
Closed state is stored in localstorage. If the user closes topbar; it will not open again in the browser, unless localstorage is cleaned.
Before - After
Container content for tablet is centered.
Merhaba iyi çalışmalar, Web sitesinin içeriği tablet görünümünde sol tarafa yaslanmış şekilde görünmektedir. display flex yapısı ile sadece tablet görünümü için sayfa içeriğini ortaladım.
| Mevcut Sayfa Görünümü | Düzeltilmiş Sayfa Görünümü | |---|---| |
|
|
Bump json5, @vue/cli-plugin-babel, @vue/cli-plugin-unit-jest and @vue/cli-service
Bumps json5 to 2.2.3 and updates ancestor dependencies json5, @vue/cli-plugin-babel, @vue/cli-plugin-unit-jest and @vue/cli-service. These dependencies need to be updated together.
Updates
json5
from 1.0.1 to 2.2.3Release notes
Sourced from json5's releases.
... (truncated)
Changelog
Sourced from json5's changelog.
... (truncated)
Commits
c3a7524
2.2.394fd06d
docs: update CHANGELOG for v2.2.33b8cebf
docs(security): use GitHub security advisoriesf0fd9e1
docs: publish a security policy6a91a05
docs(template): bug -> bug report14f8cb1
2.2.210cc7ca
docs: update CHANGELOG for v2.2.27774c10
fix: add proto to objects and arraysedde30a
Readme: slight tweak to intro97286f8
Improve example in readmeUpdates
@vue/cli-plugin-babel
from 3.9.2 to 5.0.8Release notes
Sourced from
@vue/cli-plugin-babel
's releases.... (truncated)
Changelog
Sourced from
@vue/cli-plugin-babel
's changelog.... (truncated)
Commits
b154dbd
v5.0.84a0655f
v5.0.7ef08a08
v5.0.698c66c9
v5.0.5ca97fc2
v5.0.4dd53f26
v5.0.3a859b1f
v5.0.292d80a8
v5.0.1c913cdc
v5.0.075a6d69
v5.0.0-rc.3Updates
@vue/cli-plugin-unit-jest
from 3.9.0 to 5.0.8Release notes
Sourced from
@vue/cli-plugin-unit-jest
's releases.... (truncated)
Changelog
Sourced from
@vue/cli-plugin-unit-jest
's changelog.... (truncated)
Commits
b154dbd
v5.0.84a0655f
v5.0.7ef08a08
v5.0.698c66c9
v5.0.5ca97fc2
v5.0.4dd53f26
v5.0.3a859b1f
v5.0.292d80a8
v5.0.1c913cdc
v5.0.09be19f0
test: fix tsx importUpdates
@vue/cli-service
from 3.9.2 to 5.0.8Release notes
Sourced from
@vue/cli-service
's releases.... (truncated)
Changelog
Sourced from
@vue/cli-service
's changelog.... (truncated)
Commits
b154dbd
v5.0.80260e4d
fix: add devServer.server.type to useHttps judgement (#7222)4a0655f
v5.0.7beffe8a
fix: allow disabling progress plugin viadevServer.client.progress
558dea2
fix: supportdevServer.server
option, avoid deprecation warningbddd64d
fix: optimize the judgment on whether HTTPS has been set in options (#7202)ef08a08
v5.0.6fcf27e3
fixup! fix: compatibility with Vue 2.7a648958
fix: compatibility with Vue 2.798c66c9
v5.0.5Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.
Bump express from 4.17.1 to 4.18.2
Bumps express from 4.17.1 to 4.18.2.
Release notes
Sourced from express's releases.
... (truncated)
Changelog
Sourced from express's changelog.
... (truncated)
Commits
8368dc1
4.18.261f4049
docs: replace Freenode with Libera Chatbb7907b
build: [email protected]f56ce73
build: [email protected]24b3dc5
deps: [email protected]689d175
deps: [email protected]340be0f
build: [email protected]33e8dc3
docs: use Node.js name style644f646
build: [email protected]ecd7572
build: [email protected]Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.
Bump qs from 6.5.2 to 6.5.3
Bumps qs from 6.5.2 to 6.5.3.
Changelog
Sourced from qs's changelog.
Commits
298bfa5
v6.5.3ed0f5dc
[Fix]parse
: ignore__proto__
keys (#428)691e739
[Robustness]stringify
: avoid relying on a globalundefined
(#427)1072d57
[readme] remove travis badge; add github actions/codecov badges; update URLs12ac1c4
[meta] fix README.md (#399)0338716
[actions] backport actions from main5639c20
Clean up license text so it’s properly detected as BSD-3-Clause51b8a0b
add FUNDING.yml45f6759
[Fix] fix for an impossible situation: when the formatter is called with a no...f814a7f
[Dev Deps] backport from mainDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.
Bump decode-uri-component from 0.2.0 to 0.2.2
Bumps decode-uri-component from 0.2.0 to 0.2.2.
Release notes
Sourced from decode-uri-component's releases.
Commits
a0eea46
0.2.2980e0bf
Prevent overwriting previously decoded tokens3c8a373
0.2.176abc93
Switch to GitHub workflows746ca5d
Fix issue where decode throws - fixes #6486d7e2
Update license (#1)a650457
Tidelift tasks66e1c28
Meta tweaksDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.
Bump loader-utils and @vue/cli-service
Bumps loader-utils to 1.4.2 and updates ancestor dependency @vue/cli-service. These dependencies need to be updated together.
Updates
loader-utils
from 1.2.3 to 1.4.2Release notes
Sourced from loader-utils's releases.
Changelog
Sourced from loader-utils's changelog.
Commits
331ad50
chore(release): 1.4.217cbf8f
fix: ReDoS problem (#226)8f082b3
chore(release): 1.4.14504e34
fix: security problem (#220)d95b8b5
chore(release): 1.4.0cd0e428
feat: theresourceQuery
is passed to theinterpolateName
method (#163)06d36cf
chore(release): 1.3.0469eeba
feat: support the[query]
template for theinterpolatedName
method (#162)909c99d
chore: funding.yml config and CI fix (#159)b5b74f0
Set up CI with Azure PipelinesUpdates
@vue/cli-service
from 3.9.2 to 5.0.8Release notes
Sourced from
@vue/cli-service
's releases.... (truncated)
Changelog
Sourced from
@vue/cli-service
's changelog.... (truncated)
Commits
b154dbd
v5.0.80260e4d
fix: add devServer.server.type to useHttps judgement (#7222)4a0655f
v5.0.7beffe8a
fix: allow disabling progress plugin viadevServer.client.progress
558dea2
fix: supportdevServer.server
option, avoid deprecation warningbddd64d
fix: optimize the judgment on whether HTTPS has been set in options (#7202)ef08a08
v5.0.6fcf27e3
fixup! fix: compatibility with Vue 2.7a648958
fix: compatibility with Vue 2.798c66c9
v5.0.5Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.
Bump @hapi/hoek and @hapi/joi
Bumps @hapi/hoek and @hapi/joi. These dependencies needed to be updated together. Updates
@hapi/hoek
from 6.2.4 to 8.5.1Commits
5bd73f6
8.5.14d0804b
Backport #352. Closes #3534ae5f53
8.5.083019b8
Add isPromise(). Closes #346b9aa286
Add declaration5dcbb9c
8.4.0d898b06
Add TS utils. Closes #345ea1741d
8.3.2f6eb28d
Improve clone() performance. Closes #3448fa5664
8.3.1Updates
@hapi/joi
from 15.1.0 to 15.1.1Commits
b604775
15.1.1da4774f
Replace v16 compatibility interface. Closes #2047Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.