Skip to content

LeoDiBlack/vue-reddit

Repository files navigation

Vue-Reddit Client Project

Architecture

├─ public             // Static assets.
├─ src
│  ├─ assets        // Assets such as images or font files.
│  ├─ components    // Universal Vue components.
│  ├─ router        // View's routers config.
│  ├─ services      // API's
│  ├─ store         // Vuex store modules.
│  ├─ utils         // Code Helpers
│  └─ views         // Pages.
├─ tests            // Vue Test Utils Suite

📦 Main Dependencies

Package NPM
vue- beta
vue-router beta
vuex beta
vue-cli beta
tailwind beta

Live Demo

You can check our demo here: https://wonderful-goldstine-f1701e.netlify.app/

GitHub Repo

You can check our repository here: https://github.com/LeoDiBlack/vue-reddit

Conclusions

Setup

The core of the app uses:

  • Vue 2
  • Vue Router - I intended to use multiple views in order to reflect multiple features from the Reddit API such as User Panel and multiple subs selectors.
  • Vuex - For State Management
  • Tailwind CSS - For quick, stable and scalable styling
  • ESLint - Along with The Airbnb rules for code standards
  • SASS - For Custom Styles without adding new rules to Tailwind Custom Set

Time Spent

Current build was splitted into two sessions:

  • A first one of 5 hours for project settings, configurations and foundations for the different modules, also reusing some other files from previous projects in order to speed up development process. Once the initial skeleton was ready and the endpoint was properly being handled I moved into the next session.
  • Second session of another 5 consisted of styling, responsive fixes, animations, deep logic involving the reddit pagination service (also testing its documentation) a code polish as well.

Once all the elements were linked and the requirement checklist was fulfilled (based also on the provided video) the deployment process was connected to netlify (from GitHub to Netlify) in order to provide a live demo version for the product.

Important Notes

You will see that there are several code sections that could be upgraded, ESLint rules helps us to deliver readable code while also implementing good practices but there are two scenarios where I needed to avoid the ESLint in order to hit the delivery time.

I saw that on the example video there wasn't a pagination option but the requirements asked for this one, based on this and based on the video at the beginning the project was estimated on 7-8 hours, but these last two hours were used into creating a good structure to consume in the proper way the Reddit Pagination service and getting familiar with the json structure data, this is reflected on the rendered data and the VueX configurations.

About

Reddit Client created with Vue 2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published