A conversion of vuejs-calendar project from vuejsdevelopers/vuejs-calendar to typescript.
Continuing with my habit of making my continuning education coursework harder than it needs to be (umm... I mean more interesting and educational), I am taking a similar approach to this project as I did the prior one in this series, namely I'm converting it to TypeScript and vue-class-component.
However, in this case rather than taking the existing project and bolting typescript support onto it, I'm taking a different tact. I'm generating a skeleton project using vue-cli with Typescript enabled, and them importing the relevent parts from the original skeleton project into this new project.
This repo is the result of that attempt at a franken-baby.
Also, like the prior project in this course, I will be doing the best I can to implement the features before watching the instructor's implementation. Thus, implementation might well diverge from the established coursework. I consider this a natural extension of the fact that different developers will naturally implement things differently.
Frankly, I find coursework boring. Well, let me amend that, learning new things is never boring, but for myself, just watching a course be presented rarely sticks in my long term memory well, and just re-typing / copying the course work into my IDE is mind-numbingly boring, causing my brain to stop functioning and go into copy mode.
One thing I can do to stave this off is to change things up... in some cases (where I'm learning somthing conceptual like development patterns), I'll intentionally do the exercizes in a different language than the instructor is working in, so that I am forced to think through the underlying concepts and translate them into my chosen language.
In other instances, like this where the framework is tied to a particular language, I'll change somthing else for the same reason. Thus my push to implement in Typescript and with class-components rather then straight vue-js.
Plus, I'm more likely to write my own projects in Typescript over vanilla Javascript anyway, and this this actually helps me optimize for my likely use-case.
The primary reason for implementing the features before seeing the answer is multi-fold.
-
It keeps me sharp, and again forces me to actually think about how to go about solving problems using the framework rather then just copying someone elses solutions. This can be nothing but a help when I go to actually use this technology to solve real-world problems where in there are no pre-existing answers.
-
When attempting to solve a problem on my own, I'm forced to read the documentation, and thereby learn things that are not covered in the course, including some things that have been introduced since the course was written.
-
Not only do I learn more when solving the problem on my own, but I get a nice little boost from succeeding that copying the solution presented does not provide. Plus, I learn more from seeing the presented solution when I've solved it myself and can compare my solution with the instructors.
-
Sometimes I like my solution better.
Well, honestly, you don't. It's just an exercise for my benefit, but if you want to check it out, build it and try it, here's the basics, adapted from the origional course material.
Adapted Source code inspired by the Build A Professional Vue App with Vuex & Server-Side Rendering.
See the original project here: http://vuejs-calendar.vuejsdevelopers.com/
Note: this is not a running copy of this project... if you want to see this project in play, you have to clone and build it yourself.
-
I built this with the most up-to-date version of node that was available at the time, which was v12.10.0.
-
Ensure Node.js >=12.10, NPM and git are installed on your system
-
Install this code on your local system by Cloning the repository on your local file system
``` cd /path/to/install/location git clone https://github.com/GamalielMasters/vuets-calendar.git ```
-
Change into directory and do the node dance.
cd vuets-calendar npm install
-
[optional] Edit the
.env
file and replace any variables if needed -
Start project
npm run serve
Your site will be available at localhost:[PORT] where PORT
is whatever value is set in your .env
file.
npm install
npm run serve
npm run build
npm run test
npm run lint
npm run test:unit