Plan and done for August-17-2018

What will I learn today?

  1. Practicing Javascript, git and workflow at CodeFellow.

Done

We have another final project idea: it's a site for tourists of Seattle with a main page, where you see only a bunch of photos of different tourists attrations. You can roll it (like a grand spinning wheel) in different ways (swipe on mobile?) depending on your platform and get a random photo. If it's something interesting - the user can click on it and get the more visual and text info about the place with a link to (or an actual) google maps. Another functionality is to let user keep and her notes about the place.

Product name: Tourist Roulette

User stories:

As a user, I want an app to provide me with tourist attractions in Seattle, so that I could choose where I want to go next on route.

As a user, I want to be provided with a randomly picked place, so that I always have a choice without any efforts.

As a user, I want to have an ability to get some details about a chosen place, so that I could decide whether I'm interested in it or not.

As a user, I want to have an ability to get the place position on a map, so that I could plan my trip in details.

As a user, I want to have an ability to leave my private notes on attraction I've attended, so that I could later share them with my friends.

As a hiring manager, I want to know about the guys who created the app, so that I could assess their skill set and get an expression of their abilities.

As a developer, I want to face a challenging task, so that I could feel the pleasure of accomplishment when I would overcome the challenge.

## Stretch goals

As a user, I want all the features to be presented in a game form, so that it was fun to use the app.

As a user, I want to see current weather conditions in Seattle, so that I could plan my trip with all information available.

As a user, I want to see how far the chosen place is from my current location, so that I can decide whether to go there or to find something closer.

As a user, I want to be able to share my impressions about the place I've visited immediately into all well known platforms, so that I could spend less time to open and publish into each app separately.

MVP

  • The user can get a random picture of the tourist's place in Seattle on the main page.
  • The user can click (touch) on it and get the page with a description, additional photos and a google maps link.
  • The user can get

Stretch goals:

  • to make it roll
  • Google map attached to each page about a place.
  • Ability to edit/print/save to file.
  • A scheduler to make a planning and set notifications.

What should we author?

CSS classes hierarchy Shareable data objects format

Plan and done for August-16-2018

What will I learn today?

  1. Practicing Javascript, git and workflow at CodeFellow.

Done

Result of the day.

It was a very lazy morning and very intensive afternoon.

All transformation stuff adds a little if you don't dig into interesting effects, something like a story unfolding in front of you. Or some esthetically pleasable design effects, which make navigation (read UX) easier. Everything that is beyond these is usually annoying and distractive.

Pair programming was hard - primarily because we didn't agree before about data structures to use to transfer data between moving part of an app. It's a good lesson for me.

Plan and done for August-15-2018

What will I learn today?

  1. Practicing Javascript, git and workflow at CodeFellow.

Done

Result of the day.

The challenge was to rebuild objects based on previously saved JSON. I didn't want to modify the constructor, so first I tried to implement an object builder. My object has a function call to initialize one parameter using other. And this call didn't work - parameter undefined. Dropped the idea of a builder and returned to object assigning. And finally, it worked.

Another challenge - how to draw two charts on the page. I tried to add a new chart to existing wrapper - unsuccessfully, tried to put it in a separate wrapper - no. Just dropped the idea.

Plan and done for August-14-2018

What will I learn today?

  1. Practicing Javascript, git and workflow at CodeFellow.

Done

Result of the day.

Started the dive into extensions. Built small one to show current assingnmets in Canvas LMS when I'm on the site - such approach doesn't require any additionsl authentication. Right now it prints the result to console. Next step - put the results to either the page or a new tab.

Chart.js is good in terms of basic tasks. Lack of documentation, lack of freedom, lack of challenges but a result is on the table after an hour.

Our labs are great exercises to grasp the importance of planning and prioritizing of tasks.

Plan and done for August-13-2018

What will I learn today?

  1. Practicing Javascript, git and workflow at CodeFellow.

Done

Result of the day.

  • I need more practice in building an architecture of an app. Now it's hard to decide - which way to choose to implement requirements. I hope I will eventually find time to dive deeper into design patterns.
  • Built a little helper to have a picture of what's going on with my assignments in Canvas - I don't want to lose points just because for two days I thought I already submitted everything. The helper works only in the dev console in the tab where Canvas already open.

Plan and done for August-11-2018

What will I learn today?

  1. Practicing Javascript at CodeFellow.
  2. Generation ideas for Code 201 Final projects.

Done

Idea for the final project.

Chrome extension for tracking and presenting user with his activities in the browser.

Events to track:

  • New tab opened.
  • New page loaded (with an url to track).
  • Time spent in the current tab (all user events are tracked with attach to the 1st level domain).
  • User clicked in the current tab.
  • User typed in the current tab.
  • Tab switched.
  • User followed a link to a new domain.

Time scope

The last 7 days.

Domain scope

All domains.

Final result

2 diagrams showing top 20 domain names:

  • for the time user spent on each during the last 7 days.
  • for the user clicks on each during the last 7 days.

Data format:

var domainLastVisited = {
  lastDateVisited: domain
};

var trackingData = {
  [domain]: {
    timeSpent: [seconds],
    clicks: [count],
    visits: [time],
  }
}

User stories:

As a user, I want to have information of my internet activities to understand where I spend most of the time browsing.

As a user, I want to know what attracted me the most during the past week.

As a user, I want to know which sites I've attended the most.

As a user, I want to track my activities in Chrome for the week: the sites I spent the most of the time and those which requires me to interact the most.

As a user I want all tracking information to be presented to me in forms of beautiful diagrams.

As a dev, I want to get an experience of development of browser extensions.

As a dev, I want to work with data presentation tools.

As a dev, I want to work with available in-browser data storage techniques.

Sources:

  1. Google it.
  2. Tracking user activity.
  3. Tab is focused.
  4. extensions on my machine: ~/.config/google-chrome/Default/Extensions/
  5. CRUD with local storage.

Plan and done for August-10-2018

What will I learn today?

  1. Practicing Javascript at CodeFellow.

Done

Result of the day.

Today I learned:

  • I can make a layout for an easy landing page without JS in 3 hours. It's a progress, but such CSS sprints still make me exhausted.
  • Rules approved by team members are the most important thing in a teamwork or you risk spend another hour/day/week trying to unify the code base.
  • I don't like solving code problems in mind when it's more about untangling code, than about grasping some algorithm meaning or a business rule.

Plan and done for August-09-2018

What will I learn today?

  1. Practice Javascript at CodeFellow.
  2. Choose the idea for the Code201 final project.

Done

Today I learned:

Results of the day -

My thoughts about the final project:

  • first idea was to built a calendar with all required assignments from Canvas which are not finished yet sorted by submission date. But, first, it uses external API and it's forbidden, and second Canvas has tangled API which I don't want to dive in.
  • second thought - to build HTML to ASCII converter. Just for fun. It will require two steps: convert HTML into JPG, convert JPG into ASCII. I've found a solution for the first task in a form of an external library. And here is an explanation of converting pictures into ASCII art with a C# example. The idea is exciting but totally useless.
  • technical skills are easy to acquire through practice. My concerns now primarily about an organization - I easily dive into assignments and lose focus to details.
  • today's assignment was very good for practicing CSS - exactly what I needed, spend 4 hours just to style the page.

Plan and done for August-08-2018

What will I learn today?

  1. Practicing Javascript at CodeFellow.

Done

Today I learned:

  • refactoring takes much of time. And advantages aren't obvious in a short term. Anyway, I like how the code looks now.
  • today I had a plan and I'm happy with the result, so I see quite clear: no plan - no pleasure from the finished work.
  • I tend to build engines, independent components before starting working with actual tasks. I see it this way: if I have all the pieces for a domain modeling it's easy then to organize them into a finished product. Just make the task solution as far declarative as it could be. It has drawbacks.

Plan and done for August-07-2018

What will I learn today?

  1. Practicing Javascript at CodeFellow.

Done

  • Result
  • It took 4 hours, 2 for the engine, 1 for styling, 1 - to find a bug in calculation of tossers required.
  • It was harder then yesterday - I was a little in a hurry because it seemed we've got a lot of work to do. I messed with the second table so got a spaghetti code.

Today I learned:

  • No need to hurry - start with an assignment and estimate the volume, then plan and set priorities. The order is important. I need to stick to it.