CDrive

CDrive's home page in a desktop browser

Overview

CDrive's sign-in page

CDrive is a comprehensive online file hosting and compilation service specifically designed for C++ developers. Unlike traditional IDEs that require installation, our platform allows users to create, import, edit, and execute C++ code entirely through a web browser.

With real-time compilation feedback and full support for standard input/output operations, CDrive bridges the gap between desktop development environments and cloud-based coding solutions, making C++ programming accessible from any device with an internet connection.

Highlights

Seamless File Management
Upload existing projects or create new files directly in your browser
Real-Time Compilation
Instantly compile and debug your C++ code without switching applications
Full I/O Support
Complete stdin/stdout functionality
Compatibility
Code from any device: Windows, macOS, Linux, tablets, or smartphones

Technologies

  • Frontend: Angular framework providing a responsive and intuitive user interface
  • Backend: Spring Boot powering our RESTful API and WebSocket connections
  • Containerization: Docker ensuring consistent compilation environments
  • Database: PostgreSQL storing user accounts, projects, and file metadata
  • Cloud Infrastructure: AWS Lightsail hosting our backend services
  • Frontend Hosting: Netlify delivering fast, global CDN distribution
  • IDE Integration: Monaco Editor (the engine behind VS Code) offering syntax highlighting and intelligent code completion

The Problem

A terminal asking the question 'What is your name?'

C++ developers faced significant limitations when working with C++ in browser-based environments. Existing online compilers lacked critical functionality:

  • Most services either store or compile C++ files, leading to multiple services needing to be required.
  • Code sharing often required cumbersome workarounds
  • Restricted access to compilation flags and optimization settings

We identified these pain points and built CDrive to provide a more complete solution. By implementing WebSocket connections between our compilation service and the client interface, we established bidirectional communication that enables true interactive programming with full support for standard input/output operations.

User Experience

For CDrive, user experience was the top priority. Offering intuitive file management that lets you easily create new files or import existing projects with drag-and-drop functionality.

CDrive's file management page

Thanks to our responsive design, you can enjoy a consistent experience across devices of all sizes.

Final Design

CDrive's code editor with an integrated terminal

I chose Monaco as the code editor for its robust syntax highlighting, autocomplete capabilities, and extensive language support. The final design had lot of incredible features such as:

  1. Integrated Terminal: Execute shell commands and interact with your program directly in the browser
  2. Responsive Layout: Automatically adjusts to provide optimal experience on devices of any size
  3. File Importing: Easily drag and drop files into the website at any time

Future

  • In depth version history.
  • Integration with popular version control systems (GitHub, GitLab)
  • Expanded library support for specialized C++ frameworks
  • Collaborative editing with real-time cursor sharing.