Store Procedures

I decided that I would be best that I use store procedure to better allow me to manage my database without putting to much strange on my front end, with will likely already be slightly bloated with all of the strange files that come preinstalled with react-boiler plate.

I discused this with Dr Todd after my last date class for the week. He gave me a few way about going though some of my procedures such as login which I orgionally had as three procedure which all passed data back and forth.

He surgested that I use case statement and declar local varable after writing some sudo code and looking at some of the resouces he provided I think I have got more funtional better scaling qurries.

While I’m at I I should plan out some of the strange usecases which I probably should have but keep any way. There exist a user table which sercvers to connect all types of users. I should use a transaction to avoid messy parsally commit updates and inserts.

Currently I need to look into hashing and how to applie it I think somesort of hashing middle ware wuld be good i

Giving up on redux

I have broken and restarted my redux about three times now. This last time I started looking into redux tool kit.

Tool kit is everythink redux is without its problems.

Tool kit work by wrapping the statandard pieces of redux in other funtions with automaticallu fillout need things.

My main problem with redux is that for a single piece of redux I need to create an unnecisery web of data. React-boiler-plate how information on uninstalling redux and it extention. I haven’y looked into this because I don’t want having to reset my conatiners again to set me back.

The main reason I like tool kit is the funtion such as splices will automatically fill out what is needed for a full action, reduxer, store root.

What I mena by this is I use to have to a constation for action, an action to hand cases and payloads and a reducer to commicate with my store. I would then also have to add dispatcher and map my comands to props. This lead to an extremely clutter and hard to navigate file and code struture.

Where for example with tool kit splice the action I have been admititedly over using, lets me declar most of the thing that would be need for an action chain, inside of the funtion, this includes cases and recucer.

The other part I like about tool kit is that it remove a lot the the trerible js syntx. I have a dislike for it not because of the langagues it’s self just that with reducer I have always personally felt that it was visable that this was not the langages oriogional purpose.

I have been carefully remove all of my unneed files to try and simlplie down my redux. I feel off about it because it honestly just because I’m struggling to keep up as each container has about 4 pieces of middleware which Ijust don’t understand.

with redux tool kit the two middleware I like are included, immer which allows immutible states to be correctly edited though the proper means and another middleware which I forget the name off nut is design for managing states with a browser pluggin.

The one thing I need to keep in mind is unlike standard redux which provides the user with many different options for doing simple task redux has a stronger tendance to enforce it rules. I probably will not notice as a lot of my middleware seems to already enforce ‘best practices’;

Hosting

Currently I mesing with hosting. I been doing some strange use cases of ftp piplines. How its meant to work is linting hook > commit > build > test > ftp post. I spent a long time deletiing my local runners with were briking my files. Currently I have very fragile working pipline. It’s fraglile in the fact that I wont suceed if it detects any missing commits I understand this is for safty because you don’t want to commit a broken website. The problem is that it makes it hard to work with other branch when I waiting for the commit. I was having another issue with the files not sticking, I have a theory about why. I feel like I spent enought time on this so I think I going to leave it at that. I do feel like I can talk about my pipline in my report as I think I done about 6 to 12 on this and it is very simlar to other thing and I defently made a mistake focusing to much on this.

I purchase I correct hosting. The hosting package I purchase doesn’t havr ssh or root access and I don’t have access to termial. This seemed fine as it has a lot of really good features but after playing around with it I realised I could work effiecently with express as running node packages is not doable in a useful way if I don’t have terimal + I have crated an unstoppable demon of nodemon who just can not be turned off turns out directly ignoring flassing warning message has concequences.

My web host want me to validate my second purchase by EMAILING them my mastercard this , is , not , gonna , happen. I’ve email them and opened a surport ticket, We will see where this gets me.

Currently I plain on abandoning my hosting plain I feel I have got enought to write about it and have been side track on work with is taking my project sideways instead of forward. I understand that a large amount of my grade is in the report but I would like to get my site finished. Not intirely but to a working and compete degree. Currently that is just achievable if I stop getting sife tracke

Journal 4

This web I have created basic story board for my webstore. This story boards are not entirely comprehensive but they provide enought of a layout to allow me to contune with the project.

I am behind on the project segular due to sickness and getting side track on my research report. After discussing it with my supervisoer I have decided that the format I choice for the research report is not approprate for this project to alevate some of the issues with time management I will try and complete my new design for the report while working on the webstore.

I have only just realsised that I have the names of my techonolgies confused for example I was plaing on using express as a back end where I though I was using node which is a less advanced form of express. In contrusted I have been calling redux express. Other than names my understanding of the two has remained the same.

I Have choicen to use react-boiler plate for this project I have planes to use every aspect of it to make my project more professional. The one problem I may encounter is that react-boiler plate uses redux and I was planning on using react hooks instead. I starting to thing that using soully react-hooks is not a wise idea but instead I should use react hooks in conjuntion with redux to manage me web pages information.

React-boiler plate is mostly javascripted oritated with a few new technolgy which I plan of using such as delinting models and unit testing. Learning these will hopefull bring my understanding of webdeign closer to the inductry.

Journal 3

By the end of this week:

I plan on completing my liturature review.

Creating a paper prototype.

Choose my technologies.

By completing these I will be almost cort up to where I plan to be at this point in time. Next week I plan on focuses on completing the frame work for my site which will be easier if I have both a prototype and know what technolgies I will use. After completing the framework for the site I will need to start focusing on working with ethirum.

Current I have selected most of the tools which I will used for the project.

Block Chain – ethirum: ethirum seems to have the most complete form of the technology that I would like to use.

My SQL workbench – Is what I am famalar with and is alo availilbe to me. I also have the option of using SQL sever but that is gated behind a pay wall and I’m not sure if I have the knoledge and resources to set that up. An online hosting site like firebase is also an option.

I will use git hub for verson management because it is what I am famlar with.

I will use vs code for my IDE as I have completed simlar projects in it before.

After this week I need to create something like a gant chart to manage my timeline. I can easierly create one of these in exceel as I already have experience with it.

I will trello to manage my task and what I have to complete. I have tested a few different applications simlar to trello, the main one being microsoft planner. Trello seems to both be the easiest to use as well as the one with the largest set of features.

Journal 2 : Research-Based Scoping

Due to some health issues, I have fallen behind on the literature review. To make up for this, I have done a small amount of research which will be correlated within this blog post. This will help with the scope of my project. Having some research completed will allow me to move on with my project and hopefully complete my literature review soon.

The project will likely need to be in JavaScript, as it is one of the most common languages for creating websites. I have a familiarity with some packages written in JavaScript which can form the base of a website. These include React, Express, Node and knex. Despite being behind with my project, I estimate I have time to learn one or two new skills, as well as refreshing my knowledge of other skills. I have not yet worked out whether the blockchain I am using will require any special skill sets or whether I can passively pick up the skills needed to use Ethereum.

I am likely to need a database system to manage the data for my website. This would normally result in a choice between different SQL languages, as I am familiar with several of them. I also have the option to choose a less relational language such as MongoDB, but I feel that relational languages are going to be better for the longevity of the website. However, I will need to do more research.

If I run out of time, it is possible that I can use Express to store the data in the browser. This, and I cannot express this enough, is a last resort and should only be used in dire circumstances. Using Express in this way will slow down the site to an unacceptable degree and prevent the site from properly managing information.

Based on my understanding, the SQL language I choose will not matter as much as other choices I make and can be left to later in the project.

I should also look at incorporating some other uses for blockchain into my project. The key to this is remembering that these other uses of blockchain are not the focus of the project, but could help facilitate the creation of the website.

One idea I have come across is using smart contracts as a form of DRM. I could use the web-store to sell digital copies of books or as a rental/library service. I don’t think using DRM on the website is the best option, as it removes some of the focus from smart contracts. This could be a fall back plan.

PHP is another option which I could consider using for my project.

React has a new feature called hooks, which could replace Express. I would need to learn how to use hooks, but it would simplify the project.

I have found some information about the legality of smart contracts, not on their use, but instead on their contestability in court. This is an important thing to think about for the next stage of my project.

The next stage of the project is to look into environmental factors that could affect the website, such as legality and systems which the website could come into contact with.

Journal 1 Information Gathering

This week’s focus was on gathering information which could be used in the creation of my project. I have found multiple articles which cover smart contracts, which is the topic I am working on, as well as others which could be used to help design my project.

Informative Links:

Crosby, M., Pattanayak, P., Verma, S., & Kalyanaraman, V. (2016). Blockchain technology: Beyond bitcoin. Applied Innovation, 2(6-10), 71 .

Luu, L., Chu, D. H., Olickel, H., Saxena, P., & Hobor, A. (2016, October). Making smart contracts smarter. In Proceedings of the 2016 ACM SIGSAC conference on computer and communications security (pp. 254-269).

Ingle, L. (2019). Smart contracts in consumer law: Does New Zealand need to wise up?. Victoria University of Wellington Legal Research Paper, Student/Alumni Paper, (23).

Sillaber, C., Waltl, B., Treiblmaier, H., Gallersdörfer, U., & Felderer, M. (2020). Laying the foundation for smart contract development: An integrated engineering process model. Information Systems and E-Business Management. https://doi.org/10.1007/s10257-020-00465-5

Raskin, M. (2016, September 25). The Law and Legality of Smart Contracts. https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2959166

Nugent, T., Upton, D., & Cimpoesu, M. (2016). Improving data transparency in clinical trials using blockchain smart contracts. F1000Research, 5, 2541. https://doi.org/10.12688/f1000research.9756.1

The above reference links provide information about smart contracts, ranging from legal limitations to theoretical uses.

Exemplar Links:

Nugent, T., Upton, D., & Cimpoesu, M. (2016). Improving data transparency in clinical trials using blockchain smart contracts. F1000Research, 5, 2541. https://doi.org/10.12688/f1000research.9756.1

The article which is linked above is about using smart contracts to improve the transparency in clinical trials. Although this is different from the purpose of my project, the author provides their source code which I could use as a guide for my project.

Nugent, T., Upton, D., & Cimpoesu, M. (2016). Improving data transparency in clinical trials using blockchain smart contracts. F1000Research, 5, 2541. https://doi.org/10.12688/f1000research.9756.1

It has been a while since I have used my web development skills, so the above link could be useful for reminding me of any skills I may have forgotten.

In addition to all of the reference links I have provided above, I also have access to work which has been completed by both myself and other students. I can build on this work in my project. One former student did a project about the use of Ethereum. I can use some of his findings to inform decisions I make when planning my project . Additionally, this project is similar to the GEB web-store project which I worked on in some of my SYD classes. The work done in the GEB project and my project are not a one-to-one comparison, but I can still use GEB as a base for my planning.

Project Manager Meeting

I had my first meeting with my supervisor. During this meeting we discussed the timing, frequency and medium of future meetings. We decided to have weekly meetings over teams at the same time each week. The only exception to this is that we can have face-to-face meetings on the days I have my PRJ classes.

One of the main subjects we talked about was the methodology which will be used in my project. Currently the two main methodologies I am considering are agile or rapid prototyping.

Agile allows me to make changes as they are needed, which is important because my project is complicated and beyond the scope of what I am used to. However, I am concerned that I will not have enough time to complete the project if I strictly follow an agile methodology.

In comparison, rapid prototyping gives me stricter time frames and allows me to have planned iterations. This will limit the amount of time I need to spend on each phase of the project. I also have a contact who works with rapid prototyping, who can provide me with advice if I need it.

DAT601 Calculating Transaction and Size

Unlike when we are planning the database the physical database is limited to how it is stored and the size of the database is not exact. This is because data tables up ‘pages’ and if a page is used than all of that page is reserved even if it is not fully complete.

This also helps us to see how many null values we have in the database.

Transaction take time even if its not much time if the calculation is repeat over and over again time will be wasted. This is why it is important to calculate transactions time. If we find that the time is to great we might need to use join statements or add a secondary index to make the data easier to find.

DAT601 Physical Database Design

The stage which normally comes after the logical design is the physical one. During the physical design we take into account the environment we are building the database for this includes things like correct datatype, what the specific SQL language can do for example nulls and feign keys.

The physical design can also involve rolling back some of the changes we made to during the previous stages to either save space or reduce complexity.

In Milestone three I was important for me to convert my database into a physical form as it was already to complicated to beginning with and needed to to have the number of tables reduced.

I manages to de normalizes some of the table with out effecting to much of the databases functionality.

SYD701 Cource Feedback

There was less diagrams in this class than I expected. I don’t know if this was a good thing.

I didn’t really understand what the purpose of the rich picture were, until I draw one which was like deveops. This allowed me to see how it was a natural way of figuring out methodolgies.

I for the most part understood the different between tools, methods and methogolgies. Althought I got kind of confusing when we came across thing thing which were half way between. For example I think the list were used to dicussed methodolgy have feature driven on it, but feature driven is more of a method which you can use with another methodogly.

I really enjoyed the video at the start of the cource about mastery. I got me thinking about many things. One thing that would be interesting to see but I’m not sure if it would fit the course is how to build a project when there has already been a predesesr and that predeseer can no longer be interated on.