We may earn an affiliate commission when you visit our partners.
Course image
Petar Petkanov

In this course we are going to build a Cloud Application for Remote Drone Control Operations.

[DISCLAMER]

Guys, please do not buy this course. It is very outdated in terms of initial libraries and packages installations. I am working to make an update to it, but if you go ahead and buy it it will take a significant effort on your side to find and install replacements and I do not want you to have bad experience and then hate this app development course in the rating section. Cheers

[/DISCLAMER]

We are going to code it from the grounds up - line by line - from 0 to the complete working solution.

Read more

In this course we are going to build a Cloud Application for Remote Drone Control Operations.

[DISCLAMER]

Guys, please do not buy this course. It is very outdated in terms of initial libraries and packages installations. I am working to make an update to it, but if you go ahead and buy it it will take a significant effort on your side to find and install replacements and I do not want you to have bad experience and then hate this app development course in the rating section. Cheers

[/DISCLAMER]

We are going to code it from the grounds up - line by line - from 0 to the complete working solution.

This application will allow you by using only a web page to have a complete control of each of the drones, that could be assembled for any purpose - from a security missions to a delivery of pizza in miles of radius with range limit set only by a capacity of the battery.

Just imagine how cool and powerful such a thing really is:

  • all of the time, on the web page you will be receiving very low latency live video stream from all of the drones,

  •   you will be able to share video link with anyone anywhere in the world,

  •   you will be seeing all of the drones on the interactive map,

  •   you will have full manual control of each of your custom build DIY Drone

  •   you will be able to control it from anywhere in the world,

  •   and you will be able at any time to setup and activate missions on any of those drones while they are flying.

So by the end of this course, you will not only learn a very useful skills in Java, Python and JavaScript, but most importantly, you will see how all these technologies could work together as one coherent distributed application that could easily have a real world usage.

You could adjust it to serve as a base for your own drone startup idea.

So to sum it up:

  •   we will use Java to build a single file easy to deploy backend of our cloud platform that will manage drone connections

  •   we will use Python to build application that runs on Raspberry Pi and controls the drone itself

  •   we will use JavaScript to write a single page application for our interactive user interface

  •   and we will make all those applications work together as a single cloud platform for remote drone operations

Enroll now

What's inside

Learning objectives

  • Build low latency cloud app to operate diy drones from anywhere in the world
  • How to control drone with python application running on a raspberry pi
  • Connecting multiple python applications to a single remote java app
  • Managing data concurrently from many python applications
  • Low latency video streaming from raspberry pi to a web page
  • How to have many active video streams on a single web page
  • Use protobuf in network communication between java and python applications
  • How to build single page javascript application only with jquery
  • How to control simultaneously many diy drones from a single web page
  • Using google maps api to setup and read mission data from a user
  • Real time data visualization from the drones on the interactive map
  • Use spring boot mvc to build application for 4g drone control
  • Multithreading application design in java
  • Multithreading application design in python
  • Distributed application design
  • What are design requirements for a cheap diy 4g drone
  • Python dronekit library for mavlink communication with autopilot
  • Show more
  • Show less

Syllabus

Course Introduction - The Stuff We Are About to Build
Introduction
DIY Drone Hardware Overview and WebSite Control Demo
Video Streaming and Frontend Page Controls Overview
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Java, Python, and JavaScript together, which allows learners to see how different technologies can be integrated into a single, coherent distributed application
Teaches skills in Java, Python, and JavaScript, which are useful for building cloud platforms for remote drone operations and could be applied to other distributed applications
Involves building a single-page JavaScript application using JQuery, which may be useful for learners interested in maintaining or updating legacy web applications
Requires learners to install replacements for outdated initial libraries and packages, which may require significant effort and troubleshooting
Explores building an application that runs on Raspberry Pi, which is a popular platform for DIY projects and embedded systems development
Covers the Python Dronekit Library for MavLink communication with autopilot, which is essential for controlling drones and integrating them with flight controllers

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Build remote drone startup application (outdated)

According to learners, this course presents an ambitious project idea (neutral) involving building a full-stack distributed application for remote drone control (neutral). It covers integrating Java (backend), Python (drone control), and JavaScript (frontend) using various technologies like Spring Boot, Protobuf, and JQuery (neutral). However, a significant number of students report encountering substantial difficulties, primarily because the course material and its required initial libraries and packages (negative) are heavily outdated (negative). Getting the project set up and running requires significant effort and troubleshooting to find and install compatible replacements (negative), making it a challenging experience (negative) for many.
Instructor aims for step-by-step coding from scratch.
"We are going to code it from the grounds up - line by line - from 0 to the complete working solution."
"The syllabus breaks down the complex project into manageable sections, which is helpful conceptually."
"If you can get the setup working, the line-by-line coding seems like a good way to understand the logic."
Covers an interesting and complex full-stack application.
"Just imagine how cool and powerful such a thing really is: ... you will be able to control it from anywhere in the world"
"The idea of building a complete cloud application for drone operations is fascinating and highly relevant."
"I was really excited by the project scope - integrating Java, Python, and JS for a real-world use case is a great learning goal."
"The concept is strong and covers a wide range of technologies used in distributed systems."
Expect significant work beyond lectures, mostly setup.
"...it will take a significant effort on your side to find and install replacements and I do not want you to have bad experience"
"Getting the code to compile and run took days of troubleshooting due to version conflicts and deprecated features."
"Be prepared to do a lot of external research to get the development environment working properly."
"This course is definitely not plug-and-play; it requires dedication to overcome the initial hurdles."
Requires significant effort due to outdated dependencies.
"Please do not buy this course. It is very outdated in terms of initial libraries and packages installations."
"If you go ahead and buy it it will take a significant effort on your side to find and install replacements..."
"The libraries and dependencies used in the course are quite old, which made the setup process a huge struggle."
"I spent more time fixing dependency issues than actually learning the code. The course desperately needs an update."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Let's Build Startup for Remote Drone Operations, 4G & Video with these activities:
Review Java Multithreading Concepts
Solidify your understanding of Java multithreading to better grasp the backend application design in this course.
Show steps
  • Read articles on Java threads and locks.
  • Review examples of thread pools and executors.
  • Practice writing simple multithreaded programs.
Brush Up on Python Networking
Strengthen your knowledge of Python networking to better understand the Raspberry Pi drone control application.
Browse courses on Networking
Show steps
  • Practice creating simple network applications.
  • Review Python socket programming tutorials.
  • Study examples of client-server communication.
Read 'Effective Java' by Joshua Bloch
Gain a deeper understanding of Java best practices to improve your backend application development skills.
Show steps
  • Read selected chapters on concurrency and design.
  • Apply the principles to your drone control project.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow a Raspberry Pi Drone Tutorial
Gain hands-on experience with Raspberry Pi and drone control to complement the course's Python application.
Show steps
  • Find a tutorial on building a drone with Raspberry Pi.
  • Follow the tutorial to set up the hardware and software.
  • Adapt the tutorial's code to the course's application.
Read 'Clean Code' by Robert C. Martin
Improve your coding style and practices to create more maintainable and robust drone control applications.
View CLEAN CODE on Amazon
Show steps
  • Read selected chapters on code structure and design.
  • Apply the principles to refactor your drone control code.
Extend the Web Interface
Enhance the course's JavaScript web interface with additional features and visualizations.
Show steps
  • Identify areas for improvement in the web interface.
  • Implement new features using JavaScript and JQuery.
  • Add real-time data visualizations to the map.
Document Your Drone Build
Create a blog post or video documenting your experience building a DIY drone, reinforcing your understanding of the hardware and software components.
Show steps
  • Document the hardware components used.
  • Describe the software setup and configuration.
  • Share your experiences and lessons learned.

Career center

Learners who complete Let's Build Startup for Remote Drone Operations, 4G & Video will develop knowledge and skills that may be useful to these careers:
Drone Software Engineer
A drone software engineer develops the software that controls and manages drone operations. This course directly aligns with this role by providing hands-on experience in building a cloud application for remote drone control using Java, Python and JavaScript. Specifically, the course covers critical aspects of drone operation, including low latency video streaming, real-time data visualization from drones on interactive maps, and implementing drone control from a web page. The course emphasizes how these technologies work together to form a comprehensive distributed application usable in a real-world environment. A drone software engineer would find great benefit in learning these skills.
Internet of Things Engineer
An Internet of Things engineer develops and implements technology that connects physical devices to the internet. This role is a strong match given that this course focuses on creating an application that connects drones, as devices, to the internet for remote control and monitoring. It incorporates aspects of physical control leveraging python on raspberry pis, network communication and cloud data processing all of which are core competencies for an internet of things engineer. A candidate seeking this career can use this course to demonstrate competence in building internet connected solutions. This course is an excellent fit.
Robotics Software Engineer
A robotics software engineer designs, develops, and tests software for robots to perform specific tasks. This course is valuable because it provides a practical understanding of how to control a robotic device, in this case a drone, remotely using a cloud application. It teaches skills in Java for backend management, Python for Raspberry Pi drone control, and JavaScript for user interface development, all of which are crucial for a robotics software engineer. Learning to build a distributed application that integrates these technologies is also particularly useful. An aspiring robotics software engineer may find it helps to learn how disparate technologies come together.
Full-Stack Developer
A full stack developer works with both front end and backend technologies to create functional web applications. This course builds a foundation for full stack development, given that it involves creating a web interface with JavaScript, using Java for the backend, and operating devices connected to the web with Python. The course teaches how these components work together to create a cohesive application. A full stack developer would gain experience in low latency video streaming, interactive mapping and managing a complex web application. This course is a great way to gain experience in a full stack environment.
Cloud Application Developer
A cloud application developer designs creates and tests applications that run in cloud environments. This course is directly applicable to this role as it involves building a cloud application for drone operations. It uses Java to create the backend, Python for device control, and Javascript for the user interface. The course also teaches distributed application design and how to handle many concurrent data streams. A cloud application developer will use these skills when working in a real-world capacity, and so this course may be helpful in obtaining this role.
Software Developer
A software developer designs, writes, and tests code for various applications. This course is a practical example of building a software application from scratch using Java, Python, and Javascript, thus making it a good fit for someone in this role. The course provides hands-on experience building the backend, device control and the user interface, which are all pertinent to software development. A software developer would be able to better understand the distributed application design after completing this course. It may be helpful in obtaining this role.
Geospatial Data Scientist
A geospatial data scientist analyses and interprets geographic data using spatial analytics and mathematical models. This course provides a foundation through hands on development of an application that uses such data, including displaying interactive maps and working with real-time location information from drones. This course also allows a geospatial data scientist to build an understanding of the data collection process by building a system to do it, which may be helpful. Furthermore, the course’s use of Google Maps API would be relevant for this role. This course may be useful.
Embedded Systems Engineer
An embedded systems engineer is responsible for designing, developing and testing the hardware and software for embedded systems, often incorporating microcontrollers. This course offers valuable experience by simulating the development of such an embedded system through the use of a Raspberry Pi to control a drone, using Python. The skills taught, which also include real-time data processing and low-latency video streaming, are pertinent to the responsibilities of an embedded systems engineer. The course's focus on building a fully functional, distributed application, also helps to highlight how different parts of a system interact with each other. This course may be helpful for those pursuing this career.
Web Developer
A web developer builds and maintains websites and web applications. This course is useful because it involves building a single page web application with JavaScript for remote drone controls and video streaming. The web developer will also benefit by learning how to integrate the front end with the back end, using Java. Learning about managing video streams and interactive maps will also be useful. This may be helpful for a web developer to explore new technologies and to better understand the full stack.
Remote Sensing Analyst
A remote sensing analyst interprets data collected from remote platforms like drones, for a variety of applications, such as environmental monitoring or urban planning. While this course focuses more on the software development side of drone operations, this course may be useful by providing valuable insights into how such data is collected and transmitted by building the software that enables it. This course covers video streaming from drones, data visualization on interactive maps, and distributed systems architecture, all relevant to the field. A remote sensing analyst who also has app building experience is better positioned to understand technical considerations when working with sensor data. This course may be useful for such a role.
Data Engineer
A data engineer is responsible for building and maintaining the infrastructure to collect, process and store data. This course directly may be useful as it provides experience in managing real time data from multiple sources, where the course creates a system to manage video and location data streaming from many drones at once. A data engineer would need to be comfortable with these kinds of engineering challenges, so this course might provide useful experience in that regard. This may be helpful for someone who is a data engineer or looking to enter that field.
Computer Vision Engineer
A computer vision engineer develops algorithms to allow computers to 'see' and interpret images and videos. The course involves working with low latency video streams, which is a key technology for computer vision systems. This course may help someone pursue this role by providing hands on experience working with live video feeds and interactive maps. A computer vision engineer often needs to work with live data streams. The course does not touch on algorithms themselves. It may be useful to those interested in this role.
Network Engineer
A network engineer designs, implements, and maintains computer networks. This course is beneficial as it provides hands-on experience with network communication between devices, in this case, drones and a central server. The course focuses on network aspects such as low latency video streaming and managing data from multiple devices, giving the user practical experience in network applications. It may be helpful to network engineers or those interested in this career, who are interested in the software component of the networking space.
Application Architect
An application architect designs the structure of applications, ensuring they meet requirements and are designed for optimal performance. This course is relevant as it details the architecture of a distributed application for remote drone control, using Java, Python, and JavaScript. It also demonstrates using different technologies to build a cohesive application. Understanding the principles of distributed systems, managing data concurrently from multiple sources, and designing efficient communication channels between systems are all useful to an application architect. This course may be useful to those in or seeking to enter this career.
Mobile Application Developer
A mobile application developer is responsible for designing and developing software for mobile devices. This course doesn't directly build a mobile app. However, the course does involve building a web application using JavaScript that controls drones and streams video from them. Mobile developers who want to understand more about web integrations may find this beneficial since it may be helpful to understand how data is passed and processed in a web application. Specifically, this course could help a mobile app developer see how their applications can interface with web APIs and receive data in real time. This course may be useful.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Let's Build Startup for Remote Drone Operations, 4G & Video.
Provides invaluable insights into Java best practices and design patterns. It is particularly helpful for understanding the backend application design and multithreading concepts used in the course. While not strictly required, it offers a deeper understanding of the principles behind the code. This book is commonly used by industry professionals.
Provides guidance on writing maintainable and readable code. It is helpful for improving the overall quality of the Java, Python, and JavaScript code developed in this course. While not directly related to drone operations, it will help you write better code. This book is commonly used by industry professionals.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser