Team XYZ (Keystone) 
- Starts On
- July 01, 2016
- Finishes On
- September 30, 2016
- Last Activity
- October 01, 2016
October 01, 2016
Team XYZ (Keystone)  — at October 1, 2016 14:00 UTC
We started the day with the last call with our supervisor Sofia. We had a nice chat with her, talked about our progress during the summer, about our plans for the future, and we genuinely hope that we can stay in touch even after our RGSoC is over.
Then we spent the rest of the day working on our second blog post, which is now live, and continued our work on the visualization task. We made some progress, but against our best hopes to finish it off, there is still some work to do. We updated our mentor Max with our progress and he suggested that we submit a WIP PR, which we will do, and next week we will pick it up again and keep coding.
So this is it. Our last daily summary. But it's not the end - we met a lot of cool people with whom we hope to keep in touch, we learned loads of stuff that we can now build on, and we have two conferences planned in the coming months (in Berlin and in Paris), where we can hopefully meet some of our colleagues from other teams.
Thank you, Rails Girls Summer of Code!
September 30, 2016
Team XYZ (Keystone)  — at September 30, 2016 12:17 UTC
Day 63. We continued working on our visualization task, because although we have done the main part of it, we would like to be able to submit some improvements that we came up with on the way. There is still some work to be done, but hopefully we will be able to finish it by the end of the programme.
In the evening we had our end of RGSoC party with our coach Jano and a bunch of friends from our Women in Technology meetup group. Unfortunately Josef could not attend, because he got sick, but at least we have a good excuse to get together again for another small party with everyone. We discussed our experience during the Summer of Code and we also discussed the future of our meetups and what sort of activities we would like to do going forward.
September 29, 2016
Team XYZ (Keystone)  — at September 29, 2016 09:08 UTC
Wow. Day 62! Can't believe we're writing that into the title field of this daily summary.
In the morning we kept trying to figure out the last bits of our visualization task on our own and the afternoon was spent in the company of our amazing coach Josef, who took time on his day off to spend it with us in an intensive coaching session.
We're now going to polish it all out to hopefully have it finished by the end of the day. Fingers crossed!
Oh, and I almost forgot - we planned our little end of RGSoC party in Prague, so come join us if you're around!
Here's a snippet of what we've talked about in our coaching session:
September 28, 2016
Team XYZ (Keystone)  — at September 28, 2016 09:05 UTC
Stuck, stuck, stuck. We are still working on the visualization task, but we are still not completely happy about the result. So we planned a big coaching session for Wednesday and hopefully we can make it look nice with the help of our coaches. There is a bank holiday in CZ on Wednesday, so we are extra happy and grateful that the guys are willing to come and help us on their day off. We also finalized our plans for our RGSoC closing party - it's going to be on Thursday and we will post the details very soon.
September 27, 2016
Team XYZ (Keystone)  — at September 27, 2016 08:26 UTC
We continued working on visualization task, and are able to pull out data for options although the format it renders in is not the best, so we still have to work on that. As a part of our React dive-deep learning, we have also scheduled a full-day React workshop with our coach Josef on Wednesday where we plan to build a small app and learn more about React-way of building web stuff. We are also planning to organize a "Good bye RGSoC" party together with our coaches and members of Women in Tech Prague meetup.
September 24, 2016
Team XYZ (Keystone)  — at September 24, 2016 09:47 UTC
In the morning we had a call with our supervisor Sofy, and after that dived deep into visualisation task. We already have diagrams for main elements (Lists and Fields) designed and built, and today we were working on expanding it with another component: field options in modal window. We imported modal component from elemental-ui but got a bit lost while importing/exporting/declaring components in React. Luckily our coach Josef was available so he showed us the correct way to do so. Now we have a fully working diagram, and now we want to render field's options and their values there.
September 22, 2016
Team XYZ (Keystone)  — at September 22, 2016 19:55 UTC
Design, design, design - we were still not completely happy with our ideas for the layout of the visualization page, so we brainstormed some more ideas and played around with them. This is not an easy part of the task for us, because none of us is really a design person. But it is definitely good experience for us. We are happy that the color theme and basic styles are already in place in Keystone, so we can just use them and we don't have to come up with all the styles from scratch. But the layout is still largely up to us. We alternated work on the design with study breaks, as we continued going through the React tutorials we had started before, and we also did some research on Redux, since we were not exactly sure that we understood its use completely.
In the end of the day, we think we have a nicely working layout that is quite easy on the eye. We will now leave it overnight, to be able to look at it again tomorrow with fresh eyes, and then we decide whether it is ready to go, or whether it needs some more work.
During the process of building it, we have also come up with some ideas about how to improve the visualization and enrich it with more features. We will revisit them and possibly implement some of these ideas.
Here is an example of our work in progress from somewhere in the middle of our creative process:
September 21, 2016
Team XYZ (Keystone)  — at September 21, 2016 21:47 UTC
As the Summer of Code program is nearing to its end, we are realizing how much we have learned over the summer, and also how much there is still to learn for us. As we are progressing our work on the list visualization task and discovering yet new problems, we are noticing it even more. Sometimes it can get slightly frustrating, but overcoming the challenges is so satisfying! We will persevere and we will get there. Our coaches are providing us with immense support, both technical and moral, and we are really so happy to have them. Today our coach Josef brought us some surprise gifts he had got for us from GitHub (thank you, GitHub!) - stickers, cheat sheets and some more swag, including really cool Rails Girls branded stickers. So sweet! Josef and Jano, you are the best, thank you for all you do for us!
September 20, 2016
Team XYZ (Keystone)  — at September 20, 2016 20:24 UTC
September 19, 2016
Team XYZ (Keystone)  — at September 19, 2016 23:13 UTC
September 16, 2016
Team XYZ (Keystone)  — at September 16, 2016 09:40 UTC
We continued working on creating prototype for our list visualisation component. First of all, we created a React component and added a route for rendering it in our application. Now the tricky part - how to display all available parents (lists) and their children (fields and subfields) in a tree view. It can be done by iterating over
listscollection and rendering something using
map()method. We synced with coaches and they helped us to figure out how to use
mapinside React component. We also started going through Codeacademy ReactJS tutorial and read through Build your first real world React.js application tutorial written by our mentor @mxstbr
September 15, 2016
Team XYZ (Keystone)  — at September 15, 2016 07:53 UTC
We were attempting to crack the list visualisation task, with moderate success. First of all, we managed to import lists object and print out keys and values from it. Now we are working on creating a prototype of our visualisation which, for now, would be a simple tree of parents and children. After it's done, we can start with creating React components for each node type in our tree and style it. Our coaches are doing great job helping us with this relatively advanced task.
September 14, 2016
Team XYZ (Keystone)  — at September 14, 2016 06:53 UTC
Guide to build a blog with Keystone is finished and pull request submitted. Let's see what feedback we get on it.
We also had a call with our supervisor Sophia and our coach Josef, we talked about what we are doing and what we plan to do next.
In the afternoon we had a coaching session with both our coaches Josef and Jano, focusing on our next task, the list visualization. We learned yet more stuff about Keystone and we got a little bit stuck as we were unable to print out data we are going to need in order to build the feature. So that's the first thing to crack on the way to building it.
September 13, 2016
Team XYZ (Keystone)  — at September 13, 2016 09:00 UTC
Yesterday we finally finished the guide and are ready to PR after one small part about setting up Cloudinary account is added (in Keystone you use cloud image service for uploading and storing images). We will PR it today and dive deep into List visualization task. We have a very intense coaching session planned for today's evening where we hope to lay out the whole process, and the only thing left to be done would be to code it :) Actually it is not just code but also design - we have to figure out how to display Keystone lists and fields hierarchy in diagrams. Since data will be dynamic, depending on what fields and lists user has defined in her application, the tricky part would be to make diagrams responsive. That means if there are many lists and fields, they would still have to be displayed nicely on a page.
September 09, 2016
Team XYZ (Keystone)  — at September 9, 2016 18:03 UTC
Today we focused on writing the guide about how to build a simple blog using Keystone. We decided to do it by building another test blog alongside the writing, and we are making reasonable progress. The introductin part is done, the styling part is almost done and we are in the middle of the deployment to heroku part. We are close to finishing it now. We also continued figuring out the visualization task, so we synced with our coaches and had a coaching session with them, and we will continue the coaching next week.
September 08, 2016
Team XYZ (Keystone)  — at September 8, 2016 22:33 UTC
Today we worked remotely, because Darya was still having temperature in the morning, so the air-conditioning in our coworking space would not have been the best idea. We started off by doing some reading on React.js and Redux, as we are going to need this knowledge in our next task, the lists visualization. In the afternoon we went through the assignment together and explored the parts of the code relevant to the task. We did some googling and research and we think we have a clearer idea now, but we definitely need a coaching session to make a better sense of it all, so we contacted our coaches and planned an intense session for the beginning of next week.
Tomorrow we are planning to continue working on the blog guide.
September 07, 2016
Team XYZ (Keystone)  — at September 7, 2016 21:15 UTC
Today we planned to do a little brainstorming session to start working on our new task - the list visualization in the admin interface. However, after having spent the previous evening on a cold and windy rooftop terrace during the Codess event, Daria woke up with a cold and didn't really feel well. We contacted our supervisor Sofia, explained what was happening and rescheduled the call with her which was originally planned for today. Health is important though, so we didn't go to the coworking centre today and instead stayed in our homes, Daria was resting and Veronika was exploring the Keystone codebase and making notes of what seems to be relevant to the new task. When Daria feels better, we will then compare our ideas and go through the notes together with our coaches to draft a strategy for the solution.
Tomorrow we will reassess the situation though; if the cold will persist, we may decide to stay away from the air-conditioned environment of the coworking space for one more day and instead work remotely from our homes and focus on learning and reading.
Team XYZ (Keystone)  — at September 7, 2016 20:54 UTC
On Tuesday we processed feedback on the Twitter Field PR and made the recommended changes. We are now waiting to see if any more changes are necessary, so the PR remains open for now, but a thorough code review should follow shortly.
In the evening we went to the Microsoft Prague building to take part in the Codess Prague event. We attended interesting talks about React, product management, web security and making web apps global. It was also a nice opportunity to network and also to reconnect with people we haven't seen for a while - we were able to catch up over a fancy cocktail on the rooftop terrace of the Microsoft building, while enjoying a lovely view of Prague panorama. It was a very enjoyable and informative night.
September 05, 2016
Team XYZ (Keystone)  — at September 5, 2016 21:05 UTC
Today we finally PRed our twitter field, so let's see if it gets merged or there are more adjustments to be made. In the meantime while waiting for twitter feedback, we can complete our Keystone blog how-to guide and move on to list visualization task.
Tomorrow evening we're going to Codess 2016 Prague forum organized by Microsoft for female developers. There should be some interesting talks, and we have signed up for React, web security and making app global topics.
September 02, 2016
Team XYZ (Keystone)  — at September 2, 2016 12:21 UTC
Remember the fellowship for creative women we applied for a couple days ago? We got it! We were offered half-price on the fulltime membership plan in our coworking centre, and as an added bonus, there is a possibility to use the place as a venue for our coding sessions with our Women in Technology group. But ssssh - it's a secret :D So we spent some time preparing paperwork and there is still some work to be done, but it's worth it.
We also had a very intense coaching session with our remote coaches; we started off with some of our questions we were saving for this session, but we ended up discussing general principles in programming and technology. We shared our feeling that we have learned a lot of complex concepts during the summer, but we feel that we still have substantial gaps in our knowledge of very basic stuff. It is a weird feeling - almost like when you learn a new language and you develop the ability to discuss science and philosophy, but somehow you are completely unable to order a cappuccino at a coffee shop. But we guess it's probably normal, and proficiency will come with practice. In the meantime we will just try to write as much code and absorb as much knowledge as possible. So, back to the twitter field now, we are very close to PRing it.
September 01, 2016
Team XYZ (Keystone)  — at September 1, 2016 11:40 UTC
The problem of tests not running in the end was a silly mistake of commiting slightly different code to github, so it was running on the first laptop but failing on the other. The smaller mistake is, the harder it is to spot. But it may take hours and hundreds of nerve cells to find out what actually happened.
While working on the Keystone blog making guide we realized that we encounter the same issues we were struggling with for the first time and we don't remember how to fix them :) But anyway since we are much more experienced with trouble-shooting and debugging now, we were able to come up with a solution much faster than it was during our first month. Furthermore, it is always good to repeat what you have already learnt. We were really glad to see our own progress!
August 31, 2016
Team XYZ (Keystone)  — at August 31, 2016 07:28 UTC
Today we continued working on the Twitter field but for some reason the tests were all crazy and kept failing, even though they were passing before. So we spent some time trying to figure this out and in the end we agreed that some good coaching advice is probably in order.
We also continued working on the guide and during our study time we went through some articles recommended to us by our amazing coaches. We're so lucky to have them!
August 30, 2016
Team XYZ (Keystone)  — at August 30, 2016 08:51 UTC
Monday are difficult. Especially when the sky is grey and it is raining all day long. We decided to put our main assignment aside for a day and work on something less demanding. One of our next tasks for Keystone was to write a user-guide on how to setup a blog with Keystone. Since we already did the exact same thing with our blog but forgot the steps, we decided to start from scratch and describe each step in a beginner-friendly way. Our write-up will contain local dev environment preparation, Keystone installation, editing templates to implement free Bootstrap theme, changing routes, editing menus, creating new data model for page and deployment to Heroku. In the end this guide is supposed to help a beginner user to setup his/her own blog with Keystone. Last but not least, we had a call with our supervisor Sofia and connected with our coach Jano.
August 29, 2016
Team XYZ (Keystone)  — at August 29, 2016 11:01 UTC
We spent the day improving little things on the
validateInputfunction for the Twitter field and adding more tests. We also synced with our coach Jano and agreed that we will go through our code together before we submit it.
Later in the afternoon, we returned to our study time and went through some more reading about Node and Express.
We made plans for our Monday's call with our supervisor Sophia.
August 25, 2016
Team XYZ (Keystone)  — at August 25, 2016 22:24 UTC
Today is a big day. The first beta version of Keystone was announced this morning and we are extremely excited and proud that we have had the opportunity to contribute to such an amazing project. Version 4.0.0 is also being released on Keystone creator Jed's birthday - happy birthday, Jed!
Apart from being over the moon about the new release, we continued working on the Twitter field. We discovered (again) parts of the code that needed attention and we reworked them. We can see the field shaping up under our hands and we think we are very close to the point at which we can finally submit something.
August 24, 2016
Team XYZ (Keystone)  — at August 24, 2016 18:43 UTC
We started our day with reading a callback hell article which talked about good practices in structuring code. We learnt about importance of code modularising and writing async code with separate functions (callbacks) for each code pattern.
We have also applied for Creative Women Fellowship at our coworking center aiming at supporting individually working women and their projects. Our idea is to organize small-scale coding sessions and meetups at the space, and we have a good chance of getting the coworking meeting room for this purpose. Let's cross fingers and see what their managers will reply.
Last but not least, we continued working on the twitter field and 'validateInput' function.
August 23, 2016
Team XYZ (Keystone)  — at August 23, 2016 18:32 UTC
Today we woke up to an email notification from github which said that our password max character option pull request #3302 was finally merged! Now that this task is done and out of the picture, we can focus fully on the Twitter field.
We had an intense coaching session where we focused mainly on the
validateInputfunction and discussed all the ways we can check whether the value provided by user is valid. We had started working on this function in the previous days, so we showed to Josef what we had and he suggested some very insightful ideas about how to do the same thing in a more elegant way.
We also spent some time studying - today we decided to deep dive into http requests and how they are handled in express.js, we tried it out using a mock application that we whipped up with the express generator and we learned a lot of new cool stuff.
Tomorrow we will keep working on the
validateInputfunction for the Twitter field. Another thing that we would like to start working on in the next days is the guide for creating a blog using keystone.
August 22, 2016
Team XYZ (Keystone)  — at August 22, 2016 19:12 UTC
After the day off, we were refreshed and full of energy to dive into coding again. We finally came up with the validation method for twitter field, as well as format method. Format method is supposed to strip out everything but the twitter username, and the validation method checks the result against regex containing twitter username rules (max 15 chars, alphanumeric chars + underscores). Resulting username can then be used for building up twitter urls as well as formatted output in Admin UI, and that's where we are going to next.
August 18, 2016
Team XYZ (Keystone)  — at August 18, 2016 22:37 UTC
Today we kept working on the Twitter field, and in the meantime we got back to the max chars option for the password field. We made a little change to the readme file, but there was a fair amount of research and googling behind that simple edit. We were supposed to explain why the default length is set to 72 characters (it is because it matches the bcrypt specification - bcrypt is a hashing function which is used in Keystone for password hashing). However, we struggled to find the right resource to link to in the docs - all the pages we found were either unofficial, or did not mention the max length limitation at all.
In the end, we made a decision to refer to the bcrypt-nodejs library homepage on the npm website. We also slightly rephrased the wording in the documentation. If Max and Jed like what we have done, the PR will be ready to merge and another task will be finished.
Tomorrow is the RGSoC day off and we are really grateful for it, as it comes in the right moment. We have been working hard since the beginning of summer; we are absolutely enjoying every minute and we are happy for the opportunity to learn so much, but at the same time, we feel that we need this break in order to refresh our mind and be able to focus again. Long weekend is coming, bring it on! Enjoy your day off, everyone!
August 17, 2016
Team XYZ (Keystone)  — at August 17, 2016 16:43 UTC
We are almost ready to merge our password max character option PR, the only thing left to be done is to amend documentation and add a note explaining why we limit passwords to 72 characters (because of bcrypt settings).
We spent quite a long time today going through Express.js documentation and beginner's Node.js articles. Express.js is a framework Keystone was built on, and we thought that it would be a good idea to get some basics of how the framework is organized.
Last but not least, we reworked several files responsible for displaying our Twitter field in the UI and moved to the main part which is the validation method. We already have several tests written for it but not the method itself. By the end of the week we should be able to submit the code to our coaches to review and hopefully PR it soon after.
August 16, 2016
Team XYZ (Keystone)  — at August 16, 2016 19:19 UTC
Today we called our supervisor Sophia for a quick update. Unfortunately the technology was against us, so she couldn't hear us very well, but we caught up very quickly on the recent development and it was very nice to hear her again.
Then we went back to working on the Twitter field - this task is a little more complex than the previous ones, so we need to go a little deeper, which is great and we feel like we are learning a lot. We received thorough training from our coaches about TDD right at the beginning of RGSoC, so we stick to it and started by writing tests. Once this is done, we will start building the actual field type.
We also updated our old PR about the password max character option and we are expecting feedback about it, to see if there is still something more to improve on it.
August 15, 2016
Team XYZ (Keystone)  — at August 15, 2016 20:45 UTC
Blog post about us was published today in RGSoC blog, in case someone missed it, here it is. Other than that, we continued working on the Twitter field and now at the stage of writing input validation tests while learning more about mocha test framework which Keystone uses. We also spent some time going through Chrome developer tools articles and learnt many useful things about debugging in browser.
August 12, 2016
Team XYZ (Keystone)  — at August 12, 2016 21:59 UTC
Today we were planning to start the day by calling our supervisor Sofia, but the plan did not go through as she was fighting some technical problems with her laptop, and when her problem was solved, we were blocked because the meeting room was booked for the rest of the day, so we had to reschedule the call for next week.
We moved on to our Twitter field task then. We figured that the new Twitter field type will be quite similar to the existing URL field type, so we decided to continue analyzing the existing code for URL field type, in order to understand better what the code really does. We laid out the basic structure for the new field and we will now start building on it.
We also had a call with our coach Josef, who gave us tons of helpful advice and pointers, as always.
In the afternoon we spent a lot of time writing our upcoming blog post. When we thought we were almost done, we realized that we didn't include all of the pictures and we spent more time cropping, adjusting, resizing and uploading photos. We were finally done, but as we finished the day very late, we decided to wait until tomorrow before we send it off, because - you know what's the best way to discover typos in your text? Hit the 'send' button! The deadline to submit our PR is on Sunday, so we still have time to proofread it one last time.
August 11, 2016
Team XYZ (Keystone)  — at August 11, 2016 18:58 UTC
Additional max characters validation to our password validation options was PR-ed today, and we're moving to another set of tasks. We will create our own brand new field for Twitter (marked as Medium complexity in our Trello board, yeay!) and then start with completely fresh task sent to us today by our mentor. We're not 100% sure about all the details but we're already excited about it. We will work a visualization of the available lists in the admin interface as a separate page in Keystone Admin UI.
This would be a self-contained feature that would require us to come up with ideas from start to end, including design. Our mentor thinks it would be very well received by the users, and we could expand the idea later for another parts of application which need to be visualized.
August 10, 2016
Team XYZ (Keystone)  — at August 10, 2016 22:40 UTC
Yesterday evening we finally submitted our second docs PR, where we added missing readme files for geoPoint, dateArray and numberArray field types, and today the PR was merged.
As our mentor Max and KeystoneJS creator Jed had mentioned before, there is a major documentation revamp coming up, and our work so far has contributed towards the goal of having clearer, easily navigable docs. Another part of the docs improvement process is writing guides for various use cases for KeystoneJS, and we suggested that we can help by covering the part of creating a simple blog using KeystoneJS.
We also did a major clean up of our Trello board and re-added all the pull request links into the done tasks, in order to have a clear track of all the work we have done so far, and so that we don't have to look them up individually, but have them all handy in one place.
Study time today included some more reading about general programming principles and also about express.js, as we felt we need to fill some gaps in our knowledge in this area. We will keep doing this alongside the actual coding tasks, as we feel that reading and subsequent discussion with our coaches is helping us greatly in our learning.
August 09, 2016
Team XYZ (Keystone)  — at August 9, 2016 16:58 UTC
While talking about whether to implement an API for a simple twitter field, our mentor Max mentioned the level of abstraction when designing software application. He sent us a link to an interesting talk from the latest React Europe conference. We researched the subject a bit and found Ladder of Abstraction article teaching readers to think like application designer. We hope to start our own projects one day where we can actually use this knowledge.
Besides that, we continued working on documentation and watched egghead.io React tutorial to brush up the basics.
August 08, 2016
Team XYZ (Keystone)  — at August 8, 2016 22:03 UTC
Smooth scrolling PR was done and merged. Yay!
Now we are going to finish the docs (very close!) and password field max characters option.
We are also already eyeing the TO DO panel in our Trello board for a new task to do.
August 05, 2016
Team XYZ (Keystone)  — at August 5, 2016 21:46 UTC
Today we started off by having a call with our supervisor Sophia. We had a nice catch up with her and we agreed to plan another call with her and our coaches for next week.
One of our coaches, Jano, is on holidays now, and our other coach Josef has been busy answering all our questions, so we did not want to overload him by asking him to come for a conference call, but next week things should get back to normal.
We made a decision to spend a little more time on the docs, as we are not completely sure about some aspects of the type fields. We reached out to our coach Josef and also to our mentor, and now we have a clearer idea, but we still want to dig a bit deeper, so we postponed our docs PR until we are 100% sure that the docs are right.
We submitted a PR for the smooth scrolling though, so at least one of two is down. After some tiny edits, the PR should be ready to be merged.
Next week we will keep working on the documentation, and also finish the max character option for the password field.
Now off to the weekend!
August 04, 2016
Team XYZ (Keystone)  — at August 4, 2016 20:41 UTC
We're diving deeper into Keystone field types and almost finished documenting Geolocation field. We have also implemented smooth scrolling on page save in Admin UI and are ready to submit another PR. In the evening we had an outdoor coaching session with our coach Josef and had an interesting chat about software development over a glass of good Czech beer.
Tomorrow our plan is to hopefully finalize missing documentation, submit two PRs with docs and smooth scrolling and move on to the next tasks from our Trello board.
August 03, 2016
Team XYZ (Keystone)  — at August 3, 2016 19:12 UTC
We are learning so much by working on the documentation. We have finished updating the existing readme files today and we created new ones for fields that did not have any.
We also documented the new features that we had added previously - minimum and maximum character option for the text field, and password complexity option for the password field. The password complexity option is an
Object, so we also added a simple example to make the documentation clearer.
Check how cool it looks like in the Github interface: https://github.com/keystonejs/keystone/tree/master/fields/types/password
We received great feedback on our work so far and our first documentation PR has been merged today.
The "Done" column in our Trello board is slowly starting to fill up with finished tasks, and it is bringing us a great sense of accomplishment.
While we were committing our work and creating new branches and so on, we have also realized that using git has almost become a second nature for us. Using git for open source contributing is crucially important, but not at all trivial - it was really confusing and hard to master at the beginning of the program, but now we are flying! It is amazing to witness our own progress on things like this!
We still need to add a couple of other readme files, which so far have not been documented at all. This part of the task is more challenging, because we need to write the docs from scratch by examining the code, but we are determined to win this battle.
In the meantime, we continued researching various ways to implement smooth scrolling and in the following days we are planning to move on with this task and give a try at a solution.
August 02, 2016
Team XYZ (Keystone)  — at August 2, 2016 17:16 UTC
Today we continued working on field types documentation merge task and submitted PR with what we've done so far. We still have to add new doc files to several field types and document password complexity API we developed previously.
We also picked another frontend task from our TO-DO list and will work on implementing smooth scroll to the top once page gets updated. We found an interesting tutorial putting apart jump.js library and will go through it and rework the parts which could be useful for our case.
August 01, 2016
Team XYZ (Keystone)  — at August 1, 2016 20:57 UTC
Today we started the day early and had a call with Jed, the creator of KeystoneJS. He is based in Sydney, so the time difference makes the planning a little tricky, but we were lucky and were able to squeeze our call into his busy schedule.
Jed explained to us our next task - updating the documentation of Keystone features. The documentation is currently in a separate repo and our job is to move the information into existing markdown files in the main repository. There is already some information present in the files, so we need to carefully compare the resources and merge them without unnecessary repetition, but also without omitting important information. This is not really a purely programming task, but we think that by the time we finish, we will understand the project much better and develop good habits of writing clear, concise and understandable documentation.
We spent the rest of the day working on the files and we think that tomorrow we might submit a PR with the first couple of docs that will be ready by then, to get some feedback and find out whether we are going in the right direction.
July 29, 2016
Team XYZ (Keystone)  — at July 29, 2016 15:29 UTC
Today after a pleasant call with our supervisor Sofia, we finally cracked the password validation API task, and after several amendments our PR was successfully merged to Keystone master. Oh well, we still have to document new feature for the next release so when the time comes, actual users can read how password complexity API works. But anyway we consider it a success and are ready to move on to the new tasks next month.
July 28, 2016
Team XYZ (Keystone)  — at July 28, 2016 21:43 UTC
Today we started our day just as we normally do. We pulled the fresh code from the upstream repo, merged the changes and continued our work on the invalid option check.
What we need to do here is to throw an error whenever the developer uses a nonexistent option in the config.
After an intense study session, we got back to coding and didn't get any further, so we decided to unleash the ultimate weapon: the hard reset.
We scratched our work and restored our code in sync with the upstream repo, we ran the tests again - they still didn't work. But we knew for sure that they did yesterday!
Luckily, we have a call scheduled with our mentor Max and with the Keystone.js creator Jed, so we are going to ask about this, to find out whether it is something we are doing wrong, or whether the tests are just temporarily broken. We are also going to discuss our next upcoming task (moving the Keystone documentation from a separate repo into the main one).
July 27, 2016
Team XYZ (Keystone)  — at July 27, 2016 17:52 UTC
Needless to say, the less you know the faster you code (by the method of trial/error, copy-pasting snippets and asking people around). But our current motto is - Who goes slowly, goes wisely, and who goes wisely, goes far.
Team XYZ (Keystone)  — at July 27, 2016 07:57 UTC
On day 18, we finally submitted our PR to solve the password complexity issue. We knew that there were still some things to improve, but we figured that getting some feedback from our mentor Max would be beneficial for further work on it. We received really good feedback about some particular things we were able to figure out, and we also got a couple of very helpful pointers about what needs to be done next.
We started working on it with renewed energy and we are going to submit our work very soon.
We also had a really helpful coaching session with Josef.
After the password complexity task is finished, our next tasks will be moving the Keystone documentation from a separate repo back into the main one (yay! way to put our theoretical git knowledge to practical use!), and possibly also writing some admin interface unit tests.
July 25, 2016
Team XYZ (Keystone)  — at July 25, 2016 20:49 UTC
Today we finished password complexity task including displaying different messages depending on validation error type but remained hesitant to make a pull request. It still feels unpolished and seems like code refactoring is needed before we submit it to the general public.
But negative feedback is better than no feedback, so tomorrow we will put our git magic knowledge together and send it out to the world. Fortunately js lint points out the most obvious syntax errors and make us clean up our own code mess, unusable variables, mixed up quote types and indentation dirt, so even if the code is not perfect, it is at least pretty.
July 22, 2016
Team XYZ (Keystone)  — at July 22, 2016 21:59 UTC
Today we started the day by continuing our coaching time. We talked about programming principles and contributing to open source in general.
We also touched other important topics, like best ways of approaching projects and strategies for learning and skills development. Programming is hard and challenging, which is one of the things that makes it interesting and appealing. It requires continuous effort, lots of patience and dedication in order to make progress. However, it can also get a little disheartening when the progress is not as quick and rocketing as you would want. These are the moments when we most appreciate the support of our coaches. It is soothing to hear that we are not the only ones who sometimes feel like this.
July 21, 2016
Team XYZ (Keystone)  — at July 21, 2016 18:51 UTC
The day for both us started with receiving Codeacademy newsletter with an article about getting unstuck on a coding problem. This came right in time because we had several issues we didn’t know how to move forward in. But it wasn’t an article which helped us to get unstuck but our coach Jano who spent couple of hours with us helping to solve Keystone and Github puzzles. Now we feel like we’re on the right way and look forward to implement solutions we came up with tomorrow.
Here is Github matrix for those who are stuck:
Team XYZ (Keystone)  — at July 21, 2016 04:33 UTC
On day 14 we continued working on the password complexity issue and we made very satisfying progress.
We started by writing a test case, which was followed by a myriad of errors when we ran the tests. We fixed them one by one - some of them were fairly straightforward and easy to fix (like missing commas), others were harder to crack, but in the end we found ourselves with a successfully failing test case, so we could move to the actual coding part.
We started off by brainstorming several different ways how to implement the validation, we drew some charts and diagrams, we googled a lot and we made a decision about which way we want to go.
While we were laying out the options, we also brainstormed a bunch of possible enhancements that we can look into, if we have some time left later.
We had picked the character types that we want to be able to validate, and we created regular expressions for these various char types.
The next step is to put together the required chunks of regexps into a single big pattern, and then create the code to test the password value against the resulting regexp value. We are now researching the options how to do that and we think we are very close to having the preliminary version of the code ready.
On Thursday we are having another intensive coaching session with our coach Jano. We plan to discuss our approach with him and see where we are going right and where we can still improve.
We finished the day very late and we were absolutely exhausted. We could almost feel our brains overheating!
It's a real challenge and we love it.
July 19, 2016
Team XYZ (Keystone)  — at July 19, 2016 19:28 UTC
We came to the office and found out that KeystoneJS still didn’t pass the linter. We synced with our mentor Max and he promised to look into in it. In the meantime we continued working on our React contact form component but haven’t found a solution how to fetch data from comment data model. After lunch we found out that the code was and the tests were passing, so we continued working on password complexity API and had an online discussion about it with our mentor.
July 18, 2016
Team XYZ (Keystone)  — at July 18, 2016 22:34 UTC
Today we came to the office hoping that the latest commits on Keystone repo have fixed tests not running problem but unfortunately the situation remained the same. We decided to try and fix the issue locally but instead broke everything even more, so we fetched a fresh version and moved to doing React tutorials.
We were going through the Facebook-provided tutorial on building comment form with live updates and reworking its code to make it fit into our blog. The main challenge left to be done is to create a new Comment data model and make the new React component push and pull data to and from our blog database.
July 15, 2016
Team XYZ (Keystone)  — at July 15, 2016 16:54 UTC
This morning, we came to our office full of energy, with the plan to keep working on the password complexity task. We fetched the latest version of code and ran the tests to make sure we have a fresh table to start working on, but the tests would not pass!
We thought that the problem was on our side, so we triple checked everything, but the tests were still failing. Finally we got the idea to check the intermediate commits and we found out that someone had changed the linter rules, resulting into a number of lint errors, which would prevent the tests from running. We checked the situation with our mentor Max and he advised us to resort to an earlier version for the time being.
In the meantime, we noticed that the issue is already being fixed, so we will be able to use the latest version again, with tests working.
Shortly after lunch, we had a meeting with our coach Josef and had a pleasant call with our supervisor Sophia. We had a nice quick catch up about our progress and updated her about how we are doing and what we plan to do going forward. We saw that the weather in her home city Sofia is just as grey and cloudy as in Prague! :)
After the call we went over some questions we were saving for the coaching session. Josef recommended that a better approach to the password complexity task would be not to rely on regular expressions, but to implement proper validation for the password strength requirements. The extensive study time will not come to waste though. We are sure that we will use it in some other task soon again.
We learned about git rebasing and we used it to merge changes from upstream to our feature branch, while not losing our previous commits we had made.
The week is over and we really deserve some relax time now! The weather in Prague area should start improving soon, so we are really looking forward to the weekend.
July 14, 2016
Team XYZ (Keystone)  — at July 14, 2016 17:28 UTC
After yesterday’s intense deep dive into git magic, we started off today by submitting another PR, adding the minimum character validation, including a related test case.
Over the night, we came up with further questions regarding git, so we continued our study time by googling, asking questions to our mentors and reading about the topic. We are achieving reasonable familiarity with advanced git features and we are hoping to strengthen our knowledge by putting it to practical use.
We have spent more time familiarizing ourselves with regular expressions, we were trying them out in the JS console and tried to write simple scripts to figure out how to make good use of them in JS code.
We tinkered with the password
validateInputfunction, we broke it several times to find out how it works, and in the end we think we cracked it and we are ready to implement the validation options. We will consult our approach tomorrow during the coaching session and keep on working on it.
To familiarize ourselves with React, we decided to add a simple contact form component to our blog and connect it to our database to store submitted comments there. It is now on our to-do list.
Team XYZ (Keystone)  — at July 14, 2016 11:54 UTC
Today we found out that contributing to an open source project brings along some pretty complex issues to solve when it comes to using git and github.
It took us a couple hours and an intense coaching session to figure out where we were making a mistake, but now we have a much better insight into how git works, so from now on things should be running more smoothly in this department :)
We also took some time to look into the e2e tests again with our coach Josef.
As Keystone is a big and complex project, we came to the conclusion that it would be really helpful to get some more guidance about the testing logic from our mentor Max, so we decided to schedule a call with him and our coaches. At the same time, we are also arranging a call with our coaches and our supervisor Sophia. It is not an easy task, as they all have busy schedules, but they are all going out of their way to accommodate each other’s schedule and we (students) are incredibly grateful for all their flexibility and support.
We also touched the password complexity task again, but as it was already a late time after an intense and busy day, we decided to take some rest and continue on the following day.
July 12, 2016
Team XYZ (Keystone)  — at July 12, 2016 17:56 UTC
Today was a day of things not working properly, so we spent it upgrading/dowgrading and installing/reinstalling various tools we need to move forward in our coding journey.
First of all, we wanted to submit our second pull request but got caught in nasty merge conflict and spent decent amount of time figuring a way out of it.
Then we were setting up environment for running e2e tests for Keystone UI made on React but magically things were not working as expected. JRE didn’t want to be installed on Mac, and Firefox had to be downgraded, but we finally made our way through and could watch how e2e tests are actually running directly in the UI. Now we have a head start before we start writing the tests on our own.
Then we moved to password complexity task and had a little brainstorming session where we dove deep into JS regular expressions.
July 11, 2016
Team XYZ (Keystone)  — at July 11, 2016 19:24 UTC
Today we learned a whole lot about Heroku, git and github, and MongoDB configuration, mostly by means of trial and error.
We were trying to deploy our blog, but we ran into a bunch of nasty errors, so there was a lot of googling until we managed to fix the problem. In the end we realized that the problem was the cloudinary config and we set it correctly, and so you can now find our blog here http://www.xyzcode.me. It is made with free Bootstrap theme, KeystoneJS and hosted on Heroku.
We also synced with our coaches and planned another intensive coaching session to boost our progress.
Last week we finished off with a lovely kick off party with our friends. Let’s see what the upcoming week brings - roll on tomorrow!
July 08, 2016
Team XYZ (Keystone)  — at July 8, 2016 16:12 UTC
The day started on an adventurous note, as it seemed that my keys to our office went missing! Luckily, I finally found them in a well-hidden pocket of my bag. (And that’s how I discovered a new pocket in my bag! Double score!)
- Planning session: Due to the morning delay, the planning session was very short, and we jumped straight into work. We also had to catch up on our daily log update for yesterday, as we did not post one last night.
- Daria finished off the work on the blog templates and the blog now looks pretty neat.
- Study time: I (Veronika) decided to do a little refresher on Heroku, as I last used it a very long time ago. I dove into Heroku’s official tutorial, and I was amazed how much easier it seems to use it now!
- In the meantime, Daria was figuring out a way to add a new data model into our blog. In the end new data model for page + view and template were added and brand new About page was created with no content yet.
- We checked out the study materials recommended to us by our coaches.
After the first week of our Summer of Code, we now definitely deserve a nice weekend off. We are very tired, but also very happy to see that we are making progress. And now we are off to our kick-off party with our friends!
Team XYZ (Keystone)  — at July 8, 2016 10:32 UTC
Day 5 started on a bumpy road, as our coworking space ran our of coffee! Panic!
But the day progressed really well, and -- ** SPOILER ALERT ** -- we even finished off the day by sending our first ever pull request to KeystoneJS!
This is how it went:
- In the morning, we had a little planning session to plan the day ahead; it worked quite well, so we think we will incorporate this into our daily routine.
- We continued our work on the blog templates and we are just one step away of having them ready to go.
- In the afternoon, we revisited the questions we had discussed with our mentor Max and made a preparation for our coaching session with Josef and Jano.
- The coaches have done an awesome job helping us understand the gist of the max character option issue, and so we finally capped off the day by submitting our first pull request, adding the max character validation to the text field validateInput method, and a test case to test for it.
We are all energized and motivated to keep working further and learn more awesome stuff!
July 06, 2016
Team XYZ (Keystone)  — at July 6, 2016 16:10 UTC
We are progressing with building our blog on KeystoneJS. We have hit some bumps and encountered some technical hickups, but we are making our way towards having a working blog.
This is what we did today:
- We signed our contracts to use the Locus Workspace coworking centre, so now we have a stable and welcoming place to work in!
- I (Veronika) reinstalled MongoDB, NodeJS and npm on my computer, as the dependencies got messed up and prevented me from running Keystone
- I am considering of downgrading my laptop to Ubuntu 14.04 LTS, because a lot of tools are not yet supported on the latest 16.04 LTS and require a couple of hacks; we will see about that going forward
- In the meantime, Daria started building our Keystone theme using free Bootstrap template. Keystone automatically compiles Less files so we had to replace default Less files with BS template files so the styling was finished in no time. In the meantime we started on reworking default Keystone templates in Jade. Indentation issues would drive us crazy! Index page has been done, and we still have to finish building single post and abous-us templates. We plan to deploy the final blog on Friday and celebrate it on the 8th of June during our RGSoC kick-off party.
- We went back to our notes from our yesterday’s coaching session, discussed some unclear issues and and raised additional questions about the KeystoneJS code to our mentor
- We synced with our coaches remotely, because today there is a bank holiday in CZ, and we made preliminary plans for tomorrow’s all hands meeting with the coaches
- Last but not least, we planned our little Rails Girls Summer of Code kick-off party for this Friday and we invited our coaches and everybody from our Women In Tech home group :)
July 05, 2016
Team XYZ (Keystone)  — at July 5, 2016 14:56 UTC
The Summer of Code has barely started, and we are already learning so much interesting stuff every day.
Little by little, we can already see promising progress.
Today, we did this:
* Had a call with our mentor Max and our supervisor Sophia in the early morning.
* Discussed our project plan and settled on which issues we will be tackling first.
* Did a little preparation to handle the password field complexity and text field character limit issues.
* Visited our pre-selected coworking space - we loved it, so we made a decision to drop further appointments and stay here.
* Pushed to github a skeleton of our future blog which will run on Keystone.
* Explored the codebase with our coach Josef and tried to break stuff to see how things work.
* Lightly touched the unit tests issue and figured out that we need to do some reading and self study regarding react.js.
We decided to focus on getting the blog up and running this week, so we can focus on the field validation questions once this is done.
It has been a really busy day and we are super tired, but it was worth it and we are happy with where things are going.
July 04, 2016
Team XYZ (Keystone)  — at July 4, 2016 17:40 UTC
This is what we did on day 2:
- installed the latest version of Keystone, which is unstable and under development at the moment (this is the version we will be working on)
- played around the admin interface to get acquainted with the project from the user point of view
- tackled MongoDB issue on Veronika's laptop with Ubuntu 16.04
- browsed suggested issues to work on that our mentor had sent us
- set up a team page on Trello and made it ready for use
- synced with our coaches and had a catch up with our mentor before our call tomorrow
- learned about e2e tests and ran them
- made a schedule to visit coworking places, to see which one works best for us
July 01, 2016
Team XYZ (Keystone)  — at July 1, 2016 16:56 UTC
Summer of Code has started for us today!
This is what we have done:
- Morning discussion about the project and brainstorming over coffee :-) We decided to create a team blog on Keystonejs in order to get to know it better from user perspective.
- Organizational call with our supervisor Sophia
- MEAN stack installation party. We installed prerequisites for KeystoneJS - Node.js, Mongo.db, Yeoman tool for running Keystone generator and got local environment for the blog up and running.
- Social media party. We spent some time on Twitter and Teams app to get to know how other teams are doing.
- Getting in touch with our mentor Max regarding the project
- Lunch and our coaching dog Zoe walk.
- Installing Keystone and getting acquainted with the project file structure. Learning some Jade templating language syntax which we will need further on.
- Sync with coaches, coaching schedule plan