Creating Web Apps with Flask

Code Platoon Weeks Seven, Eight, and Nine – Creating Web Apps with Flask

After 6 longs weeks, we finally get to Flask, a microframework written in Python. We will use this framework to develop basic CRUD (Create, Read, Update, Destroy) apps with authentication and integrate with other web services, commonly known as APIs (Application Programming Interface).

CRUD

Most apps on the web are what developers refer to as CRUD apps. These apps are so common that there are hundreds of frameworks that exist to help speed up development. One of the most popular for the Python language is Flask. Students will start to dive deep into Flask. We’ll come back to lessons we learned in week 4 about Python’s object relational mapper Alchemy and learn to hook our Flask apps up with SQL databases. This will also be our first look at how the front-end and back-end come together to create a complete application.

Keeping Apps Secure

Once our apps are up and running, we’ll need a way to keep our users’ data safe. Security on the internet has become an enormous topic with lots of complicated ins and outs to keep track of. Thankfully, there are third party APIs that can help. Code Platoon students will learn how to use these libraries to make their Flask apps less vulnerable to attack. We’ll talk about the different kinds of attacks hackers use to get control of a site and steal data and what industry tools and best practices are commonly used to combat them.

Adding Third Party Functionality

These days, bringing in third party functionality is essential. No one writes their own mapping program – they use Google Maps API. If you want to send a text message from your app, there are services like Twillio. Need to set up a payment system? You’ll probably want to use something like Paypal or Braintree. Applications these days are breaking up into microservices: a bunch of smaller applications that do one thing well. Code Platoon students will learn how to incorporate these services into existing apps.

Adding Behavior and Creating a Personal Website

Code Platoon Week Six – Adding Behavior and Creating a Personal Website

Continuing with our front-end curriculum from last week, we’ll dig into running JavaScript in the browser. Adding Behavior and Creating a Personal Website using JavaScript allows developers to add behavior to their websites: slideshows, more advanced animation, and reacting to user events like moving the mouse or entering text.

JavaScript and the Browser

The Document Object Model, more commonly referred to as the DOM is how the browser understands your web page. We’ll break down how the browser constructs the DOM, why it’s so important, and how we can use JavaScript to traverse it. Students will use technologies like AJAX  and JQuery as well as newer ES6 features like fetch to make HTTP requests in the background.

Building a Portfolio Site

At Code Platoon, we work to make sure that when our students graduate have all the tools necessary to enter the job market as junior developers, which is why we put heavy emphasis on projects to build their portfolios. We’ll have several of these opportunities throughout the cohort and the personal site / blog is just the first. Students will spend the end of this week utilizing their new found HTML, CSS, and JavaScript skills to build and deploy their own personal portfolio site where they will be able to showcase projects and accomplishments as well as host their resumes or any other information they want.

 

 

Learning the web development with code platoon

Code Platoon Week Five – Learning the Web: Structure, Style, Function.

Code Platoon offers a complete full-stack curriculum. In week five we take our first look at front-end web development. Students learn the basics of HTML and CSS, how to implement third-party libraries that will help them create dynamic and visually appealing websites, and will finally see their code run in the browser.

Rules of the Road

In order to build anything for the web, it is essential to understand how it works under the hood. The Hypertext Transfer Protocol (HTTP) is the foundation for communicating on the web. It’s how web browsers like Chrome, Safari, Internet Explorer, and Edge talk to servers and vice versa. Students will get hands-on with HTTP by creating several small applications designed to teach the ins and outs of server-to-client communication. This is an exciting week because students start to see how all that data they have been creating and saving in databases on the server side finally gets into a browser and becomes a web application that a user can interact with.

All About Structure – HTML

Hyper Text Markup Language (HTML) is the foundation for every web page on the internet. It’s what gives web content structure and provides it with meaning, and it is a need-to-know for programmers of any kind. Students will learn how to properly structure an HTML document and how to create common content tags for things like images, links, lists and forms. We’ll discuss how the browser reads and renders the HTML we write, learn the basics of the box model, and best practices to make the code we write readable and the content we create highly accessible.

Adding Style with CSS

HTML may be the nuts and bolts of any web page, but Cascading Style Sheets (CSS) is what gives a website character. Everything about a website’s appearance has CSS code behind it. Students will practice adding color, fonts, and animations to website. We’ll look at the principles behind responsive web design and see how frameworks like Bootstrap can make creating professional looking websites easier.

golf platoon celebrates graduation

Golf Platoon celebrates graduation

Code Platoon is excited to congratulate the graduates of Golf Platoon, our seventh class of students.

We held our graduation ceremony on December 7, 2018 at 2:30 PM CST at the Motorola Solutions office in Chicago, Illinois. Eight students graduated, six of whom received tuition scholarships in order to attend our program.

These graduates will continue in their journeys with software development internships exclusively offered for Code Platoon attendees to further their coding careers. The internships for this cycle are provided by Enova, Guaranteed Rate, CTC, Prota Ventures, DRW, and Novetta.

rod levy code platoon golf graduation

Executive Director Rod Levy had this to say about the graduating class, with whom he worked directly throughout their training:  

“We are extremely proud of Golf Platoon, our seventh cohort. They worked extremely hard over the last fourteen weeks, really came together as a group, and have demonstrated impressive growth in a very short period of time. I’m sure they will be incredible contributors to the companies where they go work, and continue on to be leaders in the tech community in years to come.”

Golf Platoon graduate testimonials

Golf Platoon celebrates graduation

 

I have to admit that I was somewhat nervous about attending a program that had only been in existence for two years. I ultimately decided to take the risk because I could not have attended boot camp without the financial assistance provided by the GI Bill. It ended up being the best educational experience I’ve had.

-Katherine R.

 

I had zero experience in programming before Code Platoon. After attending the course, I was able to make apps with Ruby on Rails, React.js, and React-Native with iOS. I was taught algorithms, object orientated programming, building servers, using git and github.com, HTTP/2, and databases. This is a true full-stack developer course.

-Dan F.

 

Code Platoon really hones in on and expands on everything you need to be a successful web developer and creating full stack web applications. They are very accommodating for veterans and have their true interests at heart.

-Anonymous

 

The instructors do a great job of talking about best practices, as well as giving you plenty of opportunity to practice what you’re learning, culminating in two week-long projects in the end that give you a great sense of accomplishment!

-Skyelah B.

 

Graduation Ceremony of Code Platoon Graduates

Code Platoon would also like to thank the sponsors who made this particular cohort possible, including Motorola Solutions and Boeing.

SQL and Working With Databases

Code Platoon Week Four – SQL and Working With Databases

Programming languages come and go. Frameworks come and go. SQL (structured query language) is forever. Students will spend week four learning how to read and write data to Postres, a modern database, using SQL. Students will learn the basics of database design and how to incorporate a database into their app.

Working With a Database

Saving data to a file is fine for small applications that have limited functionality, but most modern web applications use a relational database. We’ll spend all of week four learning the tools and practices that will allow students to interact with data in much more dynamic and complex ways. The first step will be learning how to create and talk to a database. Databases have their own languages for accessing and manipulating the information they hold. By far the most popular, and the one students will focus on throughout their time at Code Platoon, is SQL. Students will learn how to set up a Postgres database from scratch. They’ll work on building out a schema and start to read and write data, all using SQL.

Database Design

The design and structure of a database can have a huge impact on an application’s performance. Databases need to be adaptable, scalable as an application grows, and changeable as new features get added. They also need to be secure. At Code Platoon, we teach all the skills students will need to build a database that is effective and efficient, and we’ll discuss best practices when it comes to how to store sensitive data like passwords and other personal user information. The highlight of this week will be a day-long database workshop hosted by Hashrocket. Hashrocket is a web consultancy in Chicago / Jacksonville Beach known for creating quality software. One of the presenters will be Jake Worth, a US Army veteran-turned-programmer.

ORM

SQL is a powerful tool but it can get tedious to write. Most languages have something called an object relational mapper or ORM. Python’s ORM is called Alchemy. Think of it as a way to talk to your database using the Python programming language. ORMs help developers read and write to the database more quickly and efficiently. They also cut down on code you have to write.

By the end of week four, students will have most of the nuts and bolts necessary to build their own web applications. We’ll spend week five looking at how to structure and style web pages before jumping into our first framework, Django, where all of the pieces from prior weeks will finally come together.

launching a website as a non-profit

Our experience launching a website as a non-profit

Code Platoon officially launched a new website in October of 2018. While the new website looked better, functioned more smoothly, and provided a higher-quality user experience for those outside our organization, what we most appreciated at Code Platoon was the straightforwardness of the development process, thanks to the contributions of many.

In the web development world, projects of this scale often take an enormous amount of time and don’t come out as planned, if they ever make it to deployment. Sometimes they’re outdated by the time they go live. They can be stressful, run way over budget, and functional changes can even end up having unintended, adverse consequences for the organization.

That was not our experience with the Code Platoon 2018 website launch. What was even more improbable was that we were able to circumnavigate those common pitfalls and launch the website of our dreams when we’re a non-profit company without the same resources as bigger businesses on the web.

We’d like to share what our website overhaul considerations and challenges were, how we overcame them, and how other organizations might do the same (especially other non-profits)!

Background

When Code Platoon first opened its doors, volunteer and staff availability was extremely limited.

Providing our veteran and military spouse students with a world-class training program and career transition experience was (and still is) top priority. A website could serve as beacon to educate those who might benefit from such an experience, but at the time, a perfect website was not mission-critical.

What does help, though, is that nonprofits can often receive discounts offered by web design studios, and we were fortunate to do so in establishing our initial website, which also included a hosting plan.

That version of the website, for a time, served its purpose. It displayed our mission, informed stakeholders of our value, and was a catalyst in expanding our program from one to three cohorts per year. It relied on the WordPress content management system, which was intuitive enough that non-technical team members could log in and make changes as needed. As our organization grew, the team added new features, such as a student application form and new visuals.

Without a dedicated web administrator to test changes and maintain quality, and with so much attention focused on the actual program, two things happened: Code Platoon became a force in the coding bootcamp scene, and its website fell behind in effectively communicating that message.

To make things even harder, the backend of the website became increasingly more cumbersome to manage. For example, when a talented volunteer designer created the amazing logo and theme colors we still proudly display, the team sought to globally apply the elements to the website, but the child theme of our hosting provider would no longer permit it. Another volunteer offered to help, and was able to manually code the changes. Cracking open the website template and discovering more issues, though, made it apparent that the first iteration of the website would not be able to scale with the growing organization much longer.

Key Considerations

We could have resolved those concerns on the old website with a bigger budget, but as a nonprofit startup, there wasn’t any extra financial padding built into our budget to cover luxuries such as customization costs from a web design studio or an in-house, full-time paid web development team like a major corporation might have.

And because we are a non-profit that relied on the generosity and participation of many stakeholders, we had lots of potential audiences for our website. Although we needed to reach prospective students, we were also aware that donors, grantors, sponsors, volunteers, staff, and third-party awards organizations would use the website as a focal point in their research. There was an enormous pull to please everyone at once, which made a website project both more complicated in planning and more enormous in scope.

Another potential solution involved leveraging volunteers to develop, deploy and administer the new website. We considered this option for several months and designed prototypes with other themes. We even attempted reformulating the aging website structure and content in order to gain a sense of the scope and magnitude of such an undertaking. During this time we reflected on ways we might maximize our productivity and performance after rolling out a new website, and we created a standard operating procedure for managing future changes.

With more and more hours invested in the process, the unsustainability of fully relying on volunteers became more apparent and significant. Even while some dedicated hosting providers offered in-house customizations at reasonable rates, the possibility of hiring and training their team at a moment’s notice was far from ideal. Hammering out the details of a contract and allowing an established web design studio to build a site from scratch with tried and true tools and practices seemed like the best solution.

That left us with many questions for the potential new provider. If we encountered a problem, would we communicate by phone, chat or email, during what times and with how fast of a turnaround?

At what point would bandwidth and storage limits be enforced? After roll out, to what extent would we be able to customize the site, and would they collaborate with us in that process?

To what degree would they outsource services such as web hosting and WordPress management to third parties, what were their policies, and would we have the ability to interface directly with them as needed?

Were essential services offered, such as optimizations (compression, caching, redirects), continuity (website backups, server backup, and security), security (SSL, brute force protection, password policy, file change detection, spam filtering) and updates (CMS, plugins, staging area)? Were such services included in the contract or provided as add-on costs?

The Code Platoon Solution

After seriously considering and walking away from a few lower cost options, Code Platoon identified a development and hosting provider with an impeccable track record, a commitment to quality, and the flexibility to meet our unique demands. With cost a potential sticking point, they worked with us to structure a plan that we could justify to our stakeholders in the immense value we would attain in the short and long term.

Once the decision was made, our team fielded each team member’s valuable perspectives in order to refine the website mockup into the best it could possibly be: strategy, planning and execution, look and feel, technical requirements, SEO, and stakeholder outreach were all thoroughly deliberated and settled by consensus. When the time arrived for our design studio to lay the hammer to the chisel, progress was quick, and before long, the basic site structure was complete.

We could have at that point rushed the remaining work to publish the site in a much shorter time frame. Instead, we had each member comb the site with its array of new features to assess whether new opportunities existed for further improvement that we may not have considered at the outset of planning. Sure enough, we ended up with plenty of new requests that we didn’t imagine could all be accepted and implemented.

To our surprise, the design studio was fully on-board with the revised requirements and invested in making the site the best it could possibly be. To ease communication, a Code Platoon volunteer became the liaison between both teams and expedited the remaining changes. At a point where the site was publishable, our team applied another quality control comb through and arrived at a much smaller, easily implementable list of revised requests, and prioritized those that were necessary for launch versus those that could be implemented later.

Reflection

We got the website we wanted in a budget and timeline that we could handle and still have a happy, ongoing relationship with our web developer.

We were able to achieve these results by:

1. Focusing on our mission.

We decided early on that the website layout and messaging needed to focus primarily on our potential students. We had faith in our supporters to see the website as a portal for applicants above all. And not just in terms of where the most resources were committed, but also in removing distractions for students that might be appealing to other audiences.

2. Relying on dedicated people who understood the mission.

For us, this was our volunteer and staff team, our sponsors, grantors, and donors, and our world-class web design studio, Digital Ammo.

If you are an organization under similar circumstances, start with a simple goal. Collaborate with all of your stakeholders, and reflect on each soft decision to consider different perspectives before finalizing. Compromise, get consensus early in the project, and follow qualified expertise whenever you reach an impasse.

And most of all, never lose sight of the mission.

Code Platoon Receives Amica Companies Foundation Grant

Code Platoon Receives Amica Companies Foundation Grant

Chicago, Illinois – October 26, 2018 – Code Platoon, a nonprofit working to transform Chicagoland veterans and military spouses into professional software developers through an immersive, educational boot camp and mentorship program, today announced it has received a grant for $20,000 USD from the Amica Companies Foundation, the charitable giving arm of Amica Insurance.

Through this grant, Code Platoon will use these mission critical funds to thoughtfully and meaningfully grow their program to include more students and more support services. The Amica Companies Foundation awards grants each year to organizations, such as Code Platoon, which support and advance individuals to become economically independent and strong.

“Veterans and military spouses step forward to serve our country, and they deserve our help. The impact of this generous grant from the Amica Companies Foundation will help us create more opportunities for our students to learn and grow as software developers,” said Rodrigo Levy, founder and executive director of Code Platoon.

“Amica recently hosted a business conference in Chicago, and it’s important for us to support the communities where we live and work,” said Meredith Gregory, charitable giving coordinator at Amica. “Amica is proud to support military programs, and Code Platoon’s mission strongly aligns with ours to help people become economically independent and strong.”

  • For additional information on Amica, please visit: Amica.com.
  • For more information on Code Platoon, please visit Codeplatoon.org.

About Code Platoon

Based in Chicago, Illinois, Code Platoon provides software coding training to help local veterans and military spouses find meaningful careers as professional software developers. While some veterans and military spouses do have four year degrees, the only requirements of enrollment are a deep desire to become a professional software developer, a positive work ethic, and a tremendous amount of tenacity. Each student is eligible to receive a scholarship that covers about 80% of their tuition making this career path affordable and attainable. Code Platoon also offers extra scholarships to women veterans who join the boot camp as they are historically underrepresented in technology based careers. Students can also use their GI Bill benefits to complete our program. The program consists of 8-12 students per class who spend 60-80 hours a week together for 14 weeks. Students are taught the Python and Ruby on Rails technology stacks, which are increasingly popular in the software development field. Instruction is a carefully curated mix of lectures, advanced coding training, and team projects, frequently culminating in a local paid internship.

About Amica Insurance

Amica Mutual Insurance Co., the nation’s oldest mutual insurer of automobiles, was founded in 1907. The company, based in Lincoln, Rhode Island, is a national writer of auto, home, marine and umbrella insurance. Life coverage is available through Amica Life Insurance Company, a wholly owned subsidiary. Amica employs more than 3,700 people in 44 offices across the country. For more information, visit Amica.com.

Milspouse Coder Scholarship

Milspouse Coder Scholarship Recipients, October 2018

We recently announced that we are providing two scholarships to our coding boot camp for military and veteran spouses. We’re able to do this in partnership with Milspouse Coders, angelhack, and Operation Code, who put on a hackathon event to raise interest in software development among military spouses.

Now that our scholarship recipients have been selected, we would like to congratulate them and share their stories!

Soris Cox: Milspouse Remote Scholarship recipient

From her application:

“The opportunity to attend remotely through the 14-week intensive boot camp is just what I need to refresh my skills, build my confidence and create a portable career for myself as a developer. As a military spouse, I set aside my career ambitions for the past eight years to move across the world multiple times, care for my family, and home educate my my child. Now that we are at a new duty station and are settling in, I have time I can devote to learning and growing as a programmer to become employable once again in this ever-changing industry. This scholarship opportunity could not have come at a better time! I know that I have the potential to be a successful developer, but I need assistance in bringing my skills up-to-date and in marketing myself to potential employers.”

Caroline Cessaro: Milspouse In-person Scholarship recipient

From her application:

“My husband, Michael Cessaro, took part in the Bravo Platoon in January 2017, I accompanied him to Chicago and witnessed the vast amount of knowledge he gained in a remarkably short space of time. We have since moved to Chicago and I recently heard Code Platoon is now accepting military spouses as part of their training program. Originally, last year, we did actually ask if I could also take part in Bravo Platoon with my husband, so I am thrilled to hear this is now the case! Coding has always been of interest to me – I find it akin to solving a puzzle and love the challenge. I took great enjoyment picking up languages last year when Michael was taking part in the program. I know it to be a rapidly expanding job market, where women are especially sought after, and this is a future career I am excited to pursue.”

Code Platoon offers many scholarships to accommodate students, and most students pay very little out of pocket to attend our coding boot camp. To find out your eligibility for these scholarships, apply now, or read more on our scholarships page.

code platoon objects and data

Code Platoon Week Three – Objects and Data

Week Three is all about data and industry best practices. Students learn the ins and outs of Object Oriented Programming and why it’s such an effective model for writing code and handling data.

Reading and Writing Data

You can’t get too far into programming without eventually having to deal with data. As students develop their skills, they’ll begin to create larger applications. As these apps grow, they will need to consume and create more and more data. We’ll look at ways to organize and save data to files using popular formats like comma separated values (CSV) and javascript object notation (JSON). The latter is one of the most popular ways of passing data around on the web, and working with each will provide a solid foundation for students when we finally get to storing large amounts of information in databases.

Working With Objects

Once students are comfortable reading and storing data, we’ll teach them how to use Python and Javascript to build something useful with that data. One of the most popular ways programmers represent and handle data in their applications is with a paradigm called Object Oriented Programming. OOP allows programmers to easily model and manipulate data in their applications. It’s at the heart of many web applications, and it will be the foundation on which students will create their own programs moving forward.

Code Style

Great code doesn’t just have to be performative, it also has to be readable to other developers. Large applications usually have many hands poking into many parts of the code base. Even on small teams, messy code can lead to large problems. Things like naming conventions, indentation, and where and when to add comments can all affect how code is read and understood by other programmers. We’ll walk students through best practices so that the code they write will always be easy to understand and live up to industry standards.  

We’ll also explore some tools (remember those outside third-party libraries from week two?) which will ensure that by the end of week three, Code Platoon students are writing squeaky-clean code.

Week Two

Teamwork and test driven development

Code Platoon Week Two – Teamwork and test driven development

As Code Platoon students continue to develop fluency in both Javascript and Python, we’ll introduce an approach to testing that catches bugs before they make their way into production code. We’ll also explore a critical success factor in the journey of any software developer which is the ability to collaborate. Students learn how to access free-to-use, or ‘open source’ libraries of code written by other developers before diving into the first of several group projects.

Proactive versus reactive code testing

An often overlooked, but extremely valuable skill when writing code is testing that code. The larger and more complex a developer’s codebase, the more likely it is that things will go wrong or break down. To ensure a small bug doesn’t have a ripple effect that takes down a whole system, good software developers learn to test their code early and often.

Writing effective tests is a skill in its own right. At Code Platoon we teach students to practice Test Driven Development (TDD). TDD is a methodology that anticipates and reduces the likelihood of bugs by proactively coding tests around a desired function before designing and implementing that function.

The tests tell the software developer what the function should not do so that their initial attempt at writing the code which supports that function is clean and less prone to rework. It is a common practice throughout the tech world, but it cannot be taken for granted!

Seeing code through the eyes of others

Developers write lots of code, for sure, but they also spend an enormous amount of time working with code written by someone else.

Before diving into a new codebase from another coder, a developer must first understand how its components interact to achieve the desired result. The ability to do so requires a level of patience, knowledge of predefined constructs, and pattern recognition that does not factor into autonomous code writing.

Getting comfortable using third party libraries enables developers to build really cool stuff at a much faster pace! At Code Platoon, students learn how to search for, install, and use these libraries in both Javascript and Python. We spend time digging through documentation, and discuss the best practices for troubleshooting code that isn’t your own.

Previous Week