DataCanvas is an interactive web application for creating multi-dimensional datasets through an intuitive paint-like interface. The application consists of a Spring Boot backend and HTML/CSS/JavaScript frontend.
- Java 21
- MySQL 8.0+
- Maven
CREATE DATABASE datasetbuilder;export DB_URL=jdbc:mysql://localhost:3306/datasetbuilder export DB_USER=your_username export DB_PASS=your_passwordcd datasetBuilder/datasetBuilder mvn clean installThen run the DatasetBuilderApplication.java in com.aaditya.honors.datasetBuilder package.
cd frontendThen open index.html in any webbrowser of choice.
datasetBuilder/ - Spring Boot backend ├── src/ │ └── main/ │ ├── java/ │ │ └── com/aaditya/honors/datasetBuilder/ │ │ ├── Controllers/ - REST endpoints │ │ ├── Models/ - Data models │ │ ├── Repositories/ - Database access │ │ └── Services/ - Business logic │ └── resources/ │ └── application.properties frontend/ - Web interface ├── css/ - Stylesheets ├── datasets/ - Dataset views | | | | | ├── build/ - Build New Dataset Pages | | | └── dashboard/ - Dataset Management Dashboard Pages ├── images/ - Static assets └── js/ - JavaScript files - Up to 5 dimensions:
- 2-4 numerical variables
- 1 optional categorical variable
- Paint-like brush tool
- Adjustable brush size and density
- Point size and opacity controls
- Shape-based categorical data
- Save datasets to MySQL database
- View saved datasets
- Download as CSV
- Delete datasets
GET /api/v1/datasets/list/all/ - List all datasets GET /api/v1/datasets/get/{id}/ - Get dataset by ID POST /api/v1/datasets/add/new/ - Create new dataset DELETE /api/v1/datasets/delete/{id} - Delete dataset GET /api/v1/datasets/get/{id}/download/ - Download dataset as CSV - Spring Boot 3.4
- Spring Data JPA
- MySQL
- HTML5/CSS3
- JavaScript
- Bootstrap 5
- Chart.js
This repository does not accept contributions yet as it is a part of the author's school ciriculum. This situation may change in the future after obtaining the neccssary approvals.
This project is licensed under the MIT License. Check LICENSE file for more information.

