The following outlines what I have learned from Intro. to Software Development.
Before I start, just want to specify that learning about web design and implementing multiple technologies has been a wonderful experience. I would keep doing this in the near future since it’s not only learning experience but letting the ‘World Wide Web’ see what I have to offer.
So the semester started out with making a plan for a website of our choice. I was wondering about this since I have never done close to a full-fledged site (at least from my perspective). I really liked the idea when Dr. Brown told us to do something we liked and something that we could work on for the whole semester. I knew from the beginning I was going to do a Astronomy website but what I didn’t clarify was if it would be General Astronomy or specific area of Astronomy. I never think about in this manner since I follow everything there is out there about Astronomy. But this became confusing just for the general user what the website is actually representing.
Afterwards, I ended up implementing field of Exoplanets as theme for my Astronomy site.
I started out with general plain design with introduction text on what the site is. Later on, I added a solar system page with some navigation links about planets in our solar system if the user desired to gather more information. During this time, I had implemented “Responsive Bootstrap CSS” in order to make it mobile friendly. Bootstrap css has lot of features to offer including making the whole layout responsive for different screen sizes. There is also another css library, Foundation, that offers more or less similar features but I decided to follow Bootstrap version since I had understood its functionality and had already started implementing it.
In order to implement the functionality of Bootstrap library, I looked at many tutorial on how it was implemented. The getbootstrap website, where the library was downloaded from, also offers the whole documentation on how each function or class is implemented and what it would look like. Taking all this in wasn’t issue since I had taken a web design class before and had basic knowledge on setting up website with HTML and CSS.
Next is the Parallax page. The parallax technique again is implemented using jQuery. There are functions like background offset, scroll speed, x offset, y offset, and many other depending on which publicly available library is being used. With the intention of showing information regarding ExoPlanets, I was able to bring stunning visualization of top 10 Exoplanets to general terms for users that would make it engaging. By implementing above mentioned functions, I was able to control the background and foreground of “page” in that section and implement different speeds for visual and text. This created illusion of depth and a bit of mesmerizing effect of visuals. As per my knowledge so far, I haven’t come across an Astronomy site that has implemented Parallax effect in order to make corresponding content more engaging for the user but instead have favored animations. To me this is pinnacle of the site which combines stunning visuals and information in one place. My goal for the future includes making infographics combined with parallax effects.
Next is the presentation of actual data about Exoplanets. The intention of this page is to provide relevant data to user to make sense out of what all the numbers mean. If the user had already visited the parallax page which gives information on top ten exoplanets then understanding data on this page would further enhance their knowledge. In order to show the data gathered so far, I headed to NASA’s Exoplanets archive page which keeps up to date information on stars and their planets along with whole bunch of data on their temperature, mass, size, how far they are, discovery year and many more. I gathered this information and set it up in my database. I did this in order to show specific result on this search exoplanets page. So when the user visits the page, they can either select abstractly named star or select parameters on orbital period, mass, and distance to see what planet candidates are out there and what are they like. It shows their mass and orbital period which gives rough idea on what these worlds are like. I also created a chart visualization that shows the corresponding data in scatter chart format. This was done because I needed to learn how a chart is implemented on webpage. This was not part of study materials for this course but would be good to know. The chart is implemented through Google chart API and have many tutorials on how to retrieve data from database and present the information. This was a very good learning experience since many businesses or organization like to present information through charts.
All of the above mention what was done to the site as a whole and after ‘second exam’, Dr. Brown and I agreed on making a log-in page and modify trivia questions and answers. This was in response to learning how to make a log in page using php session variables and making life little bit easier by being able to add, delete, and update questions/answers for the trivia page. This was really a good learning experience. I now am able to gather what actually happens when a user logs in to their personal email or some other site for shopping etc. Although complexity of those sites is much more compared to what I have implemented but idea behind it is still the same which makes less of a hassle to comprehend. Through log in, I perform encryption function that php has to offer called md5. This converts the entered username/password and compares it with the one in database. If it’s a match then head the user to modify trivia page otherwise show a message indication wrong username or password. I have even tried technique of applying special characters and other hacks to see if it crashes or lets the user log in by default. I didn’t see anything like that happening other than the fact a pop up showing wrong username or password. At least that is a good feeling so far.
After logging to modify page, the user is able to add, delete, and update questions/answers. For this to work, I had to create a questions table with an index as a primary key. This would let me modify any value using index column as reference rather than referring to other values in other columns which is not a good practice in database/programming. I have the index column set as primary key and auto incremented for each value being added. This for some reason didn’t work as it was supposed to. What my final solution came out was to count the number of rows in the table and then add one to it as a pre-increment. This let me add questions sequentially in the table. I had to perform two separate queries to execute this operation. Another hurdle I had to clear after this was updating a question and answers. The idea seems general but I couldn’t get the overall process to understand what index row to change it to. What I came up with was selecting the desired question that needs updating and then pulling not only questions and answers but also index number for that row. So that once update is submitted, the query would be fed the index number and would update the corresponding row. This really made life easier.
This is the overall picture of my website. My future plans include making a web server with Raspberry pi using Linux Debian and would be a good excuse to learn web server maintenance. At the moment, I have acquired a web server and domain name, the link to the site is extrasolarplanets.info. For now, I have a simple page and will be adding more pages later on.
Making a website about what I like and presenting it through multiple technologies does give me confidence as a web developer on what to expect when handling project big or small. I can now comprehend what web design entails more than ever before. It has given me enough confidence get my own web server and start rendering the site for the whole world to see. Learning all the technologies so far has given me an avenue where I can present my passion and hopefully inspire someone else to do the same. I also like to thank Dr. Brown for letting us choose our own topic and making it a reality.