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_password
cd datasetBuilder/datasetBuilder
mvn clean install
Then run the DatasetBuilderApplication.java
in com.aaditya.honors.datasetBuilder
package.
cd frontend
Then 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.