ironmaniiith's Blog

Week 6

ironmaniiith
Published: 07/11/2019

What did you do this week?
 

Refactored the export code a little bit. Made videos and added links for the export stories for better and clear explanation of what all has been achieved through the export part. Started working on the task of large file uploads (this is still WIP).
Had a weekly meet with the mentors and decided a concrete roadmap for the second evaluation. The main task would be to get the import functionality done. We decided on how to accomplish the import functionality, what all challenges can occur while implementing it. Also discussed on UX roadmap related to import. 

 

What is coming up next week?

I would be adding stories that will be covering maximum of the import functionality that needs to be done before the second evaluation period. We have also organized github project boards to reflect the same progress week by week. The core priority for now is to get a basic working functionality for import

 

Did you get stuck anywhere? 

 

One of the tasks was to get the import-export accessible from the control-panel view. I tried looking at the existing plone apps however I could not get this thing working. I'll be adding this thing and will get started with the import part this week.

View Blog Post

Week 5

ironmaniiith
Published: 07/11/2019

What did you do this week?

 

Tried covering the tasks related to export from the previous meeting held with one of my mentor. Also spent some time in figuring out how the testings can be done with the current export functionality. Organized project github boards for a better communication with mentors. The main functionality included adding the option for inclusion and exclusion of the export metadata and adding one more functionality to export all the contents from the portal. Also added 10 stories related to export and put them in the issue tracker, which gives an overview of what all things the current export plugin is able to handle.

 

What is coming up next week?

 

Wrapping up the export part and having a look at the how the tests can be done. The major priority for the second evaluation would be to get the import part done.

 

Did you get stuck anywhere

 

Not much

 

View Blog Post

Week 4

ironmaniiith
Published: 06/28/2019

What did you do this week?

 

* This week, I started with the task of export. I started by writing the user stories for export the previous week, which was supposed to be covered before the first phase evaluation. This was challenging part, however, I was able to accomplish it and also added some extra features to the export functionality. All the work related to export has been done in this PR.

* Some of the major stories that it tries to cover are described here

* While writing the code for export part, I got to learn a lot about plone methodologies, architecture and how development is done in plone community. I got to go through some of the library codes as well to the core of them.

* Made videos of the export tasks for better understanding and also added in the issues raised on the github repository

* Organized github project boards (clearly describing the status of the work as Done, Ongoing and TODO) which will help in a better communication and efficient workflow

*  Had a weekly meeting with one of my mentor. Minutes of the meeting are added here. In the same meeting, we got to know more about each others countries, culture, languages as well. This meeting also lead to adding some more features in the current export part which will make up for a better user experience. All those (apart from the one that needs discussion from mentors) have been done and added in the same PR.

* Raised an issue for another feature that was originally discussed in the UX roadmap, which will allow the admin to save his import/export profiles for later usage. This will be covered in the later work.

 

What is coming up next week?

 

* Rewrite/remove the tests for the old export feature.

* Cover the tests for the new export feature

* Write up docs covering what all has been done in the first evaluation, majorly related to the new export functionality (This is a work in progress)

* The current export feature doesn't support exporting the data related to acl_users, themes and settings. A discussion from mentor is required on this and it will be added along with the current implementation

* Getting the PR for export merged in ASAP will mark the completion of a major milestone.

* Working on the save/load profile functionality

* Supporting the current export functionality for large files uploads

* Better error handling in the existing code (whenever required)

* Adding support for large file handling

 

Did you get stuck anywhere?

 

Yes, infact I got stuck at a lot of places this week. Some of the places where I got stuck are

 

* Understanding the plone apps architecture

* Understanding the workflow of plone and how the backend and the frontend is synced up while developing plone apps. Plone architecture differs a lot than the other commonly used web development frameworks, hence it was not very intuitive to get the feel of how things are working under the hood in the initial stage. However, now after implementing the export functionality, and having gone through couple of plone apps, this problem is now resolved.

* The plan to accomplish the export functionality was to use a query widget which will allow users to perform queries efficiently and will solve a lot of very specific use cases as well. However, I later realized that the Query widget can't be directly used to get the results of the query performed, and we only get a json object which contains the actual query performed. Hence, initial thought was to implement each of the functionality on my own, which have taken a lot of time as well as resulted in a comparatively very big and error prone code. However, on further digging up and discussing with an another member of plone organization, I could figure out a way how we can get this thing done in an efficient and shorter way. Though it took some more time to understand, still I was able to do it and successfully incorporate this feature in the current export part.

* Another place where I was stuck while implementing the export functionality was to have a schema for forms which will be dynamically generated. However, I found some links which helped me accomplish this task later.

 

Lucikly, all the places where I was stuck, I could figure out the solutions for all the things, and the places where I couldn't, my mentors helped in proceeding forward, as the result of which I could accomplish the export functionality before first phase's evaluation.

View Blog Post

Week 3

ironmaniiith
Published: 06/20/2019

What did you do this week?

 

The main tasks that were accomplished this week are as follows:

* Successfully resolved merge conflicts in this PR which contained major changes and improved master.

* In the same PR, some work has been done in order to get the tests working on travis. Currently there has been a significant improvement in the number of failing tests (for now, a total of only 3 tests are failing, which will be resolved later as the priority for now is changed to implementing the functionalities of export section).

* Discussed what format to follow in order to raise issues and resolve them in PRs. So instead of having one big issue which contained all the information about failing tests, individual issues were raised which addressed the failing tests and the reason behind it being failing

* Tried finding out the cause of failing test and successfully resolved it. link

* Found a bug in the current implementation of export and resolved it. link

* Apart from this, we also decided discussed about having user stories which will help us in understanding the user scenario of our application and wrote some of the user stories. Inspired from this project

* Developed a solid understanding of the UX roadmap and what all features to expect from the export functionality in the website. Things were not very clear on the grounds of what to expect as a user when we visit the website and hence were a major hindrance in proceeding with the project. Those things got sorted out and I feel more confident with the UX roadmap and what all to expect from this project.

 

What is coming up next week?

 

* The initial user stories that we decided were mostly covering the tests, CI, and code analysis and some part of export. However, we later decided to move on to the export task being the focus for now and started writing stories that would be helpful in covering the export functionality. This is a WIP and the aim is to code up the maximum functionality of export which will cover these users stories by the end of first evaluation phase.

 

Did you get stuck anywhere?

 

* I was initially concerned while raising PRs and issues whether the format that I'm following and the path on which I'm progressing is correct or not. We had a discussion this week and then decided to give atmost priority to export functionality for now, instead of tests and CI (which can later be incorporated along with the implementation of desired features)

* I was stuck in writing user stories as I had no prior experience in writing such a thing and mostly because I didn't spend much time on the application and was not involved previously when the discussions related to UX and the roadmap was setup, so I didn't know what all to expect from this application. However, all these doubts got resolved and one of my mentor guided me in that and I am now comfortable with writing such stories.

* I was also stuck for some time in understanding the libraries that were imported and were used in the existing codebase. I played around them and used debugger extensively to understand the input/output for the methods that were used.

View Blog Post

Week 2

ironmaniiith
Published: 06/09/2019

What did you do this week

 

This week during our weekly hangout meeting, we've discussed the major outline of the project and what should be the primary focus of the project before the first evaluation. We also made some modifications in the original proposed plan, the minutes of the meeting are as follows:

 

Minutes Of the Meeting: Link

 

Above minutes of meeting lists out major tasks that have been/are to be accomplished and/or have been discussed this week. Apart from it, the following tasks are also achieved this week

 

  • Setting up project board on github which keeps track of the tasks accomplished and tasks that are to be done (or are ongoing), which will ensure a smooth and better communication of the project along with reflecting a proper understanding and accomplishments on the tasks
  • Simplified testing with travis CI and building the current project against version 5.1 of plone. Got the build pass for buildout, however the tests for the projects are still failing.
  • Had a look over the currently failing tests (a total of 6 tests were failing) and tried resolving it. Succeeded in resolving one of the tests completely and also proposed a solution for 1 more on how it can be handled and what necessary changes need to be done in order to fix it.
  • Published a list of all the failing tests (ongoing) by creating an issue on github which will help in keeping the track of the tests being fixed and the methods or proposed solutions being implemented in order to fix those tests
  • This week, I also got to learn PDB and how to use PDB in python development process
  • There was a old issue which addressed a zip file being corrupted (which was also one of the cause of failing tests). Resolved this thing and raised a PR with updated correct zip file (also mentioned in MoM)
  • Along with the above major issues, some minor issues like following good coding practises, typo fixes, updating README file for project were also look after this week by creating issues on project's repo.
  • Apart from it, I also got a chance to look after the main (core) code section of the project and played around it to develop an understanding of how things are working (primarily I explored importexport.pytest_importexport.py and utils.py)

 

What is coming up next week

Next week will primarily be focused on completing the above listed ongoing tasks and addressing the issues raised with main focus to listing all the failing tests and starting with the export part of the project. There are some section of the existing code that is not neatly written and may require rewriting for it to be used without any hindrance in future. However, the priorities may change accordingly when we have our next mentor meet the coming Wednesday which will decide a solid outline of what all are the things to be accomplished for the coming week.

 

Did you get stuck anywhere

I got stuck while trying to figure out the reasons for failing tests a little bit (with things like debugging while performing tests, import errors, IOErrors etc), however I was able to overcome it and started an issue to keep a proper track of it and organized it in a way which contains the section for Overview, Description (Reason), Proposed solution and Extra remarks so that while I try to fix all the tests, my mentors are well aware of the ongoing progress and proposed modifications.

 

Along with this, I was also very confused regarding how the project should proceed and how much of the time should be given to CI part (also how much of the support should be extended to various versions of plone), on which I got the clarity after our weekly mentor's meet, which proved to be really helpful.

View Blog Post