Refactoring NearBeach Part II

I have said this multiple times, design is not my strong suit. I have sought multiple feedback at different times to determine if I am heading in the correct direction.

We have only been focusing on one small component first. Focusing on fixing all the issues with this small component first will hopefully speed up the process of constructing other pages.

Refactoring NearBeach

In the last year and a half I finally took a web development job full time. In that time I have learned a lot of new technologies like Webpack, VueJS, D3 etc. I am now turning around and seeing that I can improve NearBeach tenfold by applying what I have learned.

The majority of the issues left with NearBeach revolve around the UI/UX, and code base that I can improve. For example I can structure NearBeach a lot better – so the code flows a lot nicer and it becomes easier to program for.

Here are good examples of this are;

  1. view.py file currently sits at being 10711 lines long. Finding sections within that code takes time.
  2. Some forms are overly complex, i.e. the quote line items, and are becoming harder to fix any bugs or issues associated with them. Without the server time taking too long to render the form.
  3. Code is being repeated over multiple spots – for example the following code
    project_results = project.objects.filter(…
  4. No structure for the JS/CSS files

The general fixes for these would be;

  1. Split the view file into separate files for each modules. This will make each file smaller and easier to find the class you need
  2. Move a lot of the complexity out of the back-end and place it into front-end. VueJS is a powerful library that can easily deal with complicated forms
  3. Move these repeated codes into their own python file, with their own functions
  4. Utilise webpack to bring together all the required files for each library. Structure the folders for any JavaScript or SASS I write

As I am not releasing any new functionality – I am planning on implementing these changes during beta.

Refactoring NearBeach

One major issue NearBeach faced when we started getting users to test, was the simple fact that users HATED the UI/UX. I can not blame them, as I am not good at expressing visually. Design has been my weakest skill by far in web development. It has been something I have not given up on though – and in the last year I have learned a lot.

An early draft on the new UI/UX

I have decided that NearBeach will require a massive refactoring, both the UI/UX and the backend code. This will hopefully lead to a cleaner code base, and a streamline UI/UX.

NearBeach Beta 0.26.2 Release

The following are bugs that have been fixed

  • BUG577 – All tasks created by a user should be accesible to that user
  • BUG606 – Webp image now showing on iPhone Safari
  • BUG631 – Style the document uploader
  • BUG632 – Style Email Quote
  • BUG636 – Can make a quote that is already accepted
  • BUG641 – Opportunity Information – Success Probability needs to be larger
  • BUG656 – Template wide is missing favicon
  • BUG658 – PROJECT READ ONLY DOES NOT CHECK PERMISSIONS
  • BUG660 – User not forward to requirement readonly when they only have create permission
  • BUG661 – User not forward to quote readonly when they only have create permission
  • BUG662 – Creation user can modify RFC when they have no group permissions
  • BUG663 – Anyone can read RFC’s

You can install the release using PIP or find the release on github – https://github.com/robotichead/NearBeach/releases/tag/beta-0.26.2

There is 1 more planned release within the 0.26 branch. Then another full site test will be applied to NearBeach – with the results determining if there will be another release.

May 2020 – NearBeach update and it’s current future

I have a lot of plans for NearBeach. Many modules in my head that I want to implement into NearBeach. So why am I wrapping up to release a stable version? Simple – I had to draw a line in the sand somewhere. This is the best place to start – I can’t be stuck in a development cycle forever without a release.

What is coming up – how many version for the 0.26 branch? There are currently 2 planned 0.26 releases looking at fixing bugs and issues. After the next release I will be doing a system wide test of NearBeach – from there I will determine if we need any more releases.

What will happen after release? NearBeach 1.0 will be a long term support (LTS) version. How long we will support it will need to be discussed and planned. This is our very first LTS stable version of NearBeach. NearBeach will also have a secondary branch that will be for new development – once again, we are still in planning how this will work and we will have more information soon.

NearBeach’s Code

NearBeach started out as a learning project for myself. I had programming knowledge gained from my years of knowing C/C++, SQL, and other languages. A friend mentioned moving one of my prior ticketing systems from C++ to a web based application. NearBeach became that application.

As I learned more and more about web programming, NearBeach gained more and more modules, and essentially evolved into what it is today.

There is nothing wrong with this approach, however it does have a few shortcomings. One of those shortcomings is that I have learned a lot more effective ways to program for web development.

The next major release of NearBeach (lets call it 2.0 for now), will focus on the following;

  • Refactoring code, making it easier to read, quicker to implement new functionality, more efficient, have a defined structure.
  • Design update – NearBeach looks very bootstrap, and the reason is it is. I am not the best designer out there, however I have hit the books and youtube to try and improve my front end skills.
  • More modules – I will always be either adding or refining existing modules within NearBeach. If you require any extra features, why don’t you hit us up on our forums – https://help.nearbeach.org

Before we start any of these tasks, we want to create a stable code base. One with as few bugs in it as possible.

NearBeach Beta 0.26.1

Bug fixes, more bug fixes and some more bug fixes. It is currently very important for us to fix all current issues with NearBeach.

The new version of NearBeach can be installed using PIP

Bug Fixes

  • BUG563 – Instructions need to have “Group Leader” in them
  • BUG593 – Read only user in chrome has weird layout for “Run Sheet”
  • BUG621 – Table overflow needs scroll in administration group
  • BUG624 – Password Reset needs new layout
  • BUG626 – User settings – alert not in alert mode
  • BUG634 – Can not apply bugs to project
  • BUG637 – Organisation search is not character case insensative
  • BUG647 – New project under assign task
  • BUG648 – Adding a whiteboard to customer gives permission denied when accessing
  • BUG649 – Group projects dashboard shows closed projects
  • BUG651 – Read only user – can create kanban board
  • BUG655 – Linked objects in requirements showing requirement items

Short term future goals

We will do another bug finding and fixing run to try and get NearBeach as stable as possible before releasing into the wild as a stable product. We are currently looking for feedback, and are planning what to do in the future about developing new functionality.

NearBeach Beta Release

We at NearBeach are proud that we have finally achieved Beta stage. NearBeach is now starting to be more than just a simple minimal viable product. We have started to use it internally to help improve and shape it.

Short Term Goals

NearBeach has a few short term goals it would like to achieve. These are, but not limited to;

  • Releasing documentation on readthedocs.io
  • Releasing “How to” videos
  • More testing and bug fixes – there will always be buggs
  • Planning new features
  • Documenting how the development cycle will work in the future
  • Business planning – where do we want to take NearBeach
  • Construction of a community
  • Discuss improvements and remove pain points in the NearBeach software

There is still a lot of work to achieve during this time. We are hoping that we can help you with your next project.

Regards
NearBeach Team

Bug Fixes

  • BUG576 – Inside My tasks display which project that task belongs to
  • BUG604 – Task -> customer list not showing
  • BUG608 – Submitted RFC’s risk levels shows ID
  • BUG609 – New RFC – select groups not rendering correctly
  • BUG612 – Assign Groups in “New Kanban” not rendering correctly
  • BUG613 – Adding assigned group does not update assigned users
  • BUG614 – Can not close Kanban boards
  • BUG622 – Does “organisation_connection” need to be kept?
  • BUG623 – Does “project_stage” get utilised?
  • BUG625 – Can not change password
  • BUG627 – Button missing – from existing projects
  • BUG629 – Not saving time correctly
  • BUG630 – Tags do not have the cross – can not delete
  • BUG635 – NearBeach’s title is still in Alpha -> should be in Beta 🙂
  • BUG638 – Can not resolve task
  • BUG639 – Non super user super user does not have ability to add tag
  • BUG640 – Documents are not uploading on existing projects
  • BUG642 – Do we need opportunity connection
  • BUG643 – Document – URL links require name
  • BUG644 – Can not add a whiteboard to customer’s documentation
  • BUG645 – Quotes have the incorrect products
  • BUG646 – TypeError at /assigned_opportunity_connection_add/1/customer/
  • BUG652 – Non super user can not link requirement to kanban board

NearBeach Beta

The final release for the alpha has gone out. Now we are working diligently towards pushing a beta release focusing on stability and consistency through out NearBeach. This involves;

  • Thorough bug testing
  • Improving database structure, and adding in consistency with back end database
  • Polish of both front end and back end code
  • Polish of UX and UI
  • Implement a full range of automatic tests to ensure stability of code
  • Cross browser testing

You will be able to test the new beta soon on our demo site – https://demo.nearbeach.org. Please note the demo will restart on the hour.

Release of Alpha 0.25.2

New Feature – Whiteboard

Plan your new project process maps with NearBeach’s new Whiteboard module. You will be able to connect the new module to the following objects;

  • Requirements and Requirement Items
  • Projects
  • Tasks

To add a Whiteboard to the objects, scroll down to the “Document Upload” section in the above modules. Click on the “+ New Item” and select “New Whiteboard” option.

Feedback Survey

We at NearBeach are striving to improve. You can help us by filling out this simple one page survey – https://www.surveymonkey.com/r/Y3ZFWW3
Thank you for your responses

Bug Fixes

  • BUG573 – Task permissions -> Who can see
  • BUG575 – Add a create new task button in the requirements page
  • BUG585 – Re-map all of Requirement/Requirement item links
  • BUG586 – Update code for associated projects
  • BUG587 – Choosing a start date greater than the end date does not change the end date
  • BUG591 – Opportunity end date not in future
  • BUG594 – Feature Improvement: RFC should contain amount of time worked
  • BUG597 – Can not create new whiterboard
  • BUG598 – Can not save whiteboard
  • BUG599 – Implementation of Blackfire.io
  • BUG600 – Bug graph is missing bug source title
  • BUG602 – New Requirement Item no saving
  • BUG603 – Associated Tasks needs the ability to create new task
  • BUG607 – Dates in RFC are in the past
  • BUG611 – RFC – Updating the start and finish dates + title of an RFC does not save
  • BUG615 – Can not create requirement item
  • BUG616 – Can not link current tasks to requirements
  • BUG617 – RFC Dates are in the past
  • BUG618 – Whiteboard module currently does not have permissions
  • BUG619 – New Line Item not rendering
  • BUG620 – Requirement not updating

Release

The release can be found on github – https://github.com/robotichead/NearBeach/releases/tag/alpha-0.25.2