There have been things working out for my latest project recently. Meeting with clients, refactoring and looking for options for deployment have been things I have been able to process with others to be able to meet the clients expectations. But what happens when a website is just the first step ? <br/
My client has decided that a mobile app would be really beneficial for the business they are running. More specifically, as a non-profit, there are different branches of organization that need to juggle different needs from the community. To increase outreach and productivity, the people I’ve been in contact in managerial positions strongly suggest that we try and develop a mobile app for android and IOS.
But here’s the thing – I have absolutely no experience in developing for mobile. To be honest, though, that is not going to stop me from trying. Thankfully and luckily, the client I work with has no rush to deploy and has yet to establish parameters for the app. I was transparent in my experience with mobile and they were more than understanding and decided to let me take a shot at it. They have many opportunities for volunteer work and I have been a volunteer for years and I believe that this is why they had faith that I could complete this project in the coming months. The only specification that they gave was that they didn’t want there to be too many updates or bugs that needed to be constantly fixed, so for this project I will be focusing primarily on immutable objects and consistent code. I take pride in my work and this will be a tough journey to take on but I am confident that I can give it a good go.
For now I’m going to work on the IOS backend and try to see what all I am going to create as far as database and objects go.
These skills include programming languages, development tools, and other programming concepts.
in this phase, you are conducting thorough research on the product you are planning to develop. You are then discussing your plans with clients and stakeholders. You are also identifying the pros and cons of the current software methods you are using. This way, you can double down on the pros and reduce the cons to a minimum. One way to make sure planning is going efficiently is to check for the customer or client’s feedback. Feedback should include surveys, interviews, questionnaires, quizzes, and more. It’s super important to know what your customers want so that you can build it for them. In the end, you are not going to make a profit if you don’t deliver the product your customers truly desire.
Once research is completed you can proceed forward to creating an SRS (Software Requirements Specification) document. In this document, you are going to describe all the product’s features. Then you are going to present the SRS doc to the stakeholders so that they can either accept it or reject it. It depends on the time and financial constraints.
Once the SRS doc is completed, your team, specifically the product architects, will create another document — the DDS (Design Document Specification). In the DDS, you’ll have your features thoroughly described. Inside the document, you’ll also have the budget and time estimates required for the product to be completed successfully. You’ll basically have everything your developers need to start working on the actual product.
The implementation phase in SDLC typically takes the longest period of time as it involves the actual development of the product. Your developers will work on creating a product based on the DDS.They must also select the most appropriate coding language for the type of software you are building. It’s vital to notice that the communication between your team at this phase must be effective and accurate. That’s because your developers will need to communicate with the QA (quality assurance) testers, the product and project managers. This will help them in developing a product your customers will genuinely enjoy. Since DevOps is becoming popular lately, developers are starting to broaden their coding skills. This makes them responsible for a large part of the entire software development life cycle process including the testing stage.
Once the product is developed, the software development life cycle testing phase follows. Here, the QA testers have to go through the codebase in order to find bugs and errors. If issues are reported, the product is turned back to the developers for them to rectify the flaws and roll it out again. This phase repeats until the product becomes flawless.
Once all the errors are removed, the product is rolled out to the market automatically. This is the step that I am currently in on a project I’ve been working on for a bit.
After deployment, you should observe how the market reacts to your product. Then based on the feedback you receive, you create reports on what needs to be improved.
“Do you need to upgrade the software version? Do you need to add more features? Do you need to make the interface simpler and more intuitive?” And so on.
This is about all of the steps but revisions and changes can also be done using these steps. Thanks for reading and I hope this helps structure project time management like it’s done for me! You can find more info on this process here where it goes in further depth.
This time around was much more challenging for me, in particular the associations, but we’ll get to that in a second. Firstly I wanted to say that the magic of Rails is real and humbling. The months leading up to this project had us diving into the foundations of it all and made me see only a fraction of the powerhouse that is Rails. There were gems out there too but I decided to start this project off of Rails and the basic gems like bcrypt and omniauth.
I decided to base my project on the idea that my local church gave me, a Sunday School app. This app would let teachers keep their assignments, classroom, parent contact information and student info all in one place. There’s no need for a gradebook but they do wanted their assignemnts marked complete for each student.
As I mentioned before, the associations really threw me for a loop. Most specifically, the has_and_belongs_to_many association. While I did have my models with appropriate associations, the bigger picture didn’t fit within it and I had to switch over to the has_many :through association as a result. I’ll put a snippet of code below to explain that transition.
class Assignment < ApplicationRecord
belongs_to :teacher
has_many_and_belongs_to :children
end
class Child < ApplicationRecord
belongs_to :classroom
has_and_belongs_to_many :assignments
end
This should have worked for me and let me assign as many assignments to as many children as I wanted, but the naming did not let me. The plurality of ‘children’ threw me completely off throughout my project and stalled me almost completely. Had it not been for the Rails guide I really would have had to start over 3 days into the project. I was able to get everything in order by doing the following: (If you plan on following suit, I strongly suggest doing this in order
Devise is one of the many authentication gems available to software engineers. I am using this particular gem for my current project as it does require user authorization and authentication. It has creative flexibility with its many specs including some very useful controller filters and helper methods.
For gems like these it is always suggested that you try to build an authentication system on your own. This way, you can familiarize yourself with the different aspects that need to be considered when building a authenticator.
These are a few controller helpers that you could find useful when creating your app with Devise:
user_signed_in?
current_user
user_session
The world of backend dev delopment can be difficult to manouver, but even more so if you are just starting out. Before even starting the Git repository, it’s important to consider what relational database managementt system you would want to choose, what relationships your objects are going to have and what kind of data can be manipulated via CRUD. Once you have all of that figured out, you’re ready to start you project!
This post will be about setting up a Ruby on Rails API with a PosgreSQL open source database. Before moving forward, make sure you have installed all necessary programs (i.e Ruby, Rails Gem, PostgreSQL)