You are on page 1of 8

Product Proposal

Introduction and Statement of Purpose

While researching about mobile application design and computer science at the start of
my ISM career, I always would go off on a tangent to figure out what my final product could be.
However, as my topic is Mobile App Design, it was very clear to me that I needed to make an
app, but I found the time and work needed to complete a mobile application was beyond my
capabilities, and this idea was finally laid to rest as my mentor only confirmed my suspicion.
Instead, I came to the realization that I was thinking too narrow. Mobile App Design is about
designing an application that works on mobile, and that doesn’t just include apps. My topic
calls for OS programming, storage optimization, and what I wish to pursue, website design.
Over 50% of search queries on Google come from a mobile app, reasons that could be attributed
to its intuitive user interface and quick processing speed. My website won’t be a search engine,
but instead a data-hosting website to display services that my mentor’s company provides. This
would require me to accommodate personal computer (PC) users and mobile app users, as we
are not planning to add a mobile version to a website, as it will make much of the information
less accessible.

This website will have 3 parts, similar to any other program, a front-end user interface,
business logic, and finally a repository. The front end is what the user sees, and where much of
the “design” aspect of mobile app design comes into play. Although we will place less
importance on this, it will still quite a big task as this is the first, and sometimes maybe the only
part, of a website that the user notice. Behind this layer is the business logic, where commands
will be programmed, and data will be pulled into. When a user clicks a button on the front-end,
the business logic will then pull the necessary data and do whatever necessary, such as add the
prices or display a pop-up. This layer acts as the glue from the front-end, to the back-end, or
repository, which will store all the data necessary to the website. The website will consist of
these layers, all equally difficult but achievable in the timeframe.

Initially Mr. Arur, my mentor, gave me multiple projects to choose from and we worked a
pro and con list to help decide which would better accommodate mine and the company’s needs,
and a website became a good pick for me, but we also needed to find good reasons for Mr. Arur
to use company time to help create the website. Many of the reasons will be better public access,
as a website is the most common way that a consumer reaches a company and will only become
more so in this growing age of technology. In addition, having a separate website showcasing
your services can provide an easy to access way for loyal customers to search for products.
Currently they must navigate an introduction page and flip through tabs of information to a
hyperlink that links them to a not-so-great user experience to find the product they need.
Instead, they can go to a page with a more comfortable UX and simply click what they want on
the homepage itself, as they already know and trust the company, and don’t wish to see the
introduction or attention grabbers that are frequently displayed on the first page of the website.

Review of Skills and Research

The great thing about computer science is the fact that it is easy to learn online. There
are millions of courses online about some aspect of computer science and are guaranteed to find
one to use to better learn a specific topic. This has made my research assessments extremely easy
and was able to learn quickly and comfortably. In fact, after my first few mentor meetings, Mr.
Arur generally gave me a course online instead of teaching me, as I can then go on my own pace
without having to use his time, but soon the programming because so specific that we had to
spend between 1-2 hours talking on skype, both with our code editors open, solving problems in
code and learning from the mistakes. Mr. Arur clearly outlined the skills I had and need, and I
will be reciprocating that information here, including a few updates on skills I have already
acquired through Mr. Arur.

I currently have 3 years of formal schooling in Java and a semester in Swift. However, I
also have learned Python, JavaScript, and Batch on my own time. All these skills will be
employed in some form or fashion throughout the project, but I will still need a few more. First
we start with the business logic layer, as it is the most understandable and the closest to the
code you see in school, allowing me to be at least a little bit familiar with what I am working on,
before moving to something I have no experience with. In our website, our business layer will
completely consist of C#, a language extremely similar to Java. I have spent the last 2 months
with my mentor learning this language, and I am glad to say that we both feel that we have
mastered the language enough to execute the final product. Next, I need to develop my front end
skills, which will be done in both JavaScript, a language I am already familiar with, and
ASP.NET, something I am completely inexperienced in. I have recently started about 2 weeks
ago to start designing a webpage in ASP.NET, and this will help me design the looks of the
website, while JavaScript will help me manage the extremely simple logic of clicking a tab and
moving to a new page. Next, I will need to learn how to manage databases. This could be
possibly the hardest one, as this is completely new territory for me, and will require extra care
and attention as data is generally very valuable, and a simple command such as SELECT * and
DELETE could end up deleting rows and columns of data, or corrupting it to usability. I also
have to be extra careful as I will be handling company data, and could cause irreversible damage
that could possibly cost me my job. Finally, although not a specific skill, I will need to be able to
bring these 3 topics together, each creating a single layer, to perform seamlessly in a web
browser.

Methodology

Much of the things I need to learn have overarching concepts, and I will need to reach
smaller sub-goals to better grasp and this can be best portrayed in a bullet point system.

1. Business Logic
a. Mastery of the C# Language
i. Primitive Data types
ii. Objects
iii. Differences in Java and C# in OOP programming
iv. Basic lists: Arrays, ArrayLists, KeyValuePairs, HashMaps, HashSets,
Dictionaries
b. Learn the skills of programming for a business vs completing a programming
question in a contest
i. Correct naming conventions
ii. Self-commenting code or writing external comments so the reader can
better contextualize the information
iii. Learning specific types of programming
1. Using repository classes to better organize data
2. Using CRUD operations to manage a repository database
3. Using specific sorts (quickSort, bubbleSort)
iv. Updated definitions
1. Instance variable should be communicated as a property, and
contain an automatic getter and setter
2. Must use keyboard shortcuts to maximize efficiency and decrease
mistypes.
3. Find necessary API’s (only 1 or 2, will need more and will be more
important later)
c. Manage projects
i. Use Visual Studio File management system to organize folders
1. Use XCAssets folder for artificial input variables
2. Use Solution folders to output artificial output variables
ii. Utilize Unit testing and unit testing classes to try methods and classes
before they are put into production
iii. Make habit of compiling/building projects before submitting for
production, and determine if it’s universal or “only works on your laptop”
2. Front-End
a. Mastery of JavaScript
i. Complete online CodeAcademy course to obtain syntax mastery
ii. Learn the imports of objects and absolutely-necessary API’s
iii. Learn the type of passing, primitives passed by value and if objects are
passed the same way or if by reference and how does it affect my code.
b. Mastery of ASP.NET
i. Learn syntax and code structure of the language
ii. Complete course of Microsoft website to better understand the language
iii. Use Microsoft Visual Studio to:
1. Develop test locally hosted websites to design
2. Test online accessibility of these websites
3. Port forward websites without a domain for testing?
iv. Learn how to link pages together through tabs
1. Display pages by hotlinking to webpages together inside of a tab
object
2. Find uses for a hotlink that redirect to other websites seamlessly
without the need for long loading/connection times
a. Learn to pre-load website data to decrease the
loading/refresh time
c. Mastery of HTML
i. Use HTML to develop simple designs for website
1. Will help transfer from pen and paper designs to a simple test
webpage, and then cause be used in tanged of ASP.NET to create
an interactive website with working tabs and buttons.
3. Back-End Programming
a. Learn the temporary uses of a repository and determine when it is better to use a
repository in a class vs a full-fledged SQL Database
b. Master of SQL Sequel Server
i. Learn how to operate the CRUD methods within that workspace
ii. Learn how each time a command runs the data isn’t necessarily a
completely new way to run
1. When running a program, making it run more than once will
permanently change the numbers in the database, cannot try again
without some change.
iii. Learn how to manage company data without breaking it (Follow methods
and procedures in the employee handbook)
4. Combining all 3 layers together
a. Mastery of Batch
i. Learn to use CMD to launch necessary commands to combine the
TableView, Visual Studio, and miscellaneous IDE used for JavaScript into
one file where I can edit all the code
b. Debug
i. Perform debugging and unit testing on code to see all parts run smoothly
and efficiently
ii. Find and squash any errors that cause the website to crash by handing it
over to friends/family to act as Q&A and test the code in a unpredictable
manner
5. Make it aesthetically pleasing for Final presentation
a. Mostly done in HTML, but will tried to be done in ASP.NET to create a more
sleek design

Materials

 Laptop (provided)
 Microsoft Visual Studio (provided by mentor)
 Microsoft SQL Server (provided by mentor)
 Bluehost online database (2.99 a month, paid for by company)
 External software (paid for by company)

Total Cost: ≈$0

Conclusion

Although websites are ambiguous as any technology platform today, there’s a lot that
needs to be learned to create one. From working with databases to store vital information, to
displaying information in an elegant UI display, and finally creating a system of classes that
manage the information between the website and the computer it is being accessed by. It
requires the mastery of multiple coding languages, getting comfortable with a few different
IDEs, and communicating with corporate management for details/requirements they would like
for me to complete.

A website is one of the most used ways a customer reaches a business, especially one of
this technological caliber, and instantly judges the company simply based on this digital
platform. From loading times to aesthetics, everything can create an impact on the user. I wish
to learn from these initial interactions and take advantage of them to become a better website
designer, and use the transferrable skills to in turn become a mobile application programmer.
Calendar

 March 11th – 17th


o Go through CodeAcademy and learn necessary skills to become a better
programmer, start C# Course
o Create a design template on paper and transfer that to a digital design
platform
 March 18th – 24th
o Practice C# coding programs through practice problems/mentor
assignments
o Start JavaScript practice on CodeAcademy
 March 25th – 31st
o Continue JavaScript finished, and if finished move on to practice
problems/mentor assignments
o Start researching APIs to use in JavaScript or ASP.NET to let me link C#
code with website
o Get familiar with Visual Studio Interface/IDE
 April 1st – 7th
o Revisit C# and link with other classes to learn how to manage bugs in a
larger data pool
o Apply OOP concepts in code
o Create a simple webpage that hyperlinks to another webpage
 April 8th – 14th
o Start ASP.NET Practice through Microsoft website
o Import digital design and programmatically add it to the webpage as a
rough draft
o Finish rough draft of website (without data)
 April 14th – 28th
o Start SQL Server research
o Start implementation into website by transferring company information
to personal database (or use company database)
 April 29th – 5th
o Finish implementation into website by transferring company
information to personal database (or use company database)
 May 6th – 18th
o Bug Fixing!

You might also like