A web application for data analysis that provides a user-friendly interface for creating, editing, and sharing data analysis workflows. Head over to the Datadive documentation to learn more.
Datadive is a platform that enables users to explore, visualize, and analyze data interactively. It provides:
- A cell-based interface where each cell represents a step in the data analysis workflow
- The ability to write code when needed while maintaining a GUI-focused experience
- Isolated environments for users to work in
- Integration with Jupyter for code execution
- Multi-tenancy support
- Type-safe development with TypeScript
The platform consists of three main components:
- Frontend: React-based single page application
- Backend: TypeScript API built with Hono.js
- Jupyter Components: JupyterHub managing isolated Jupyter servers for code execution
Datadive uses a monorepo structure managed by Bun workspaces. The codebase is organized into:
api
- Backend HTTP APIweb
- Frontend React applicationdocs
- Documentation site
auth
- Authentication and authorizationcore
- Core business logicdb
- Database access and migrationsemail
- Email sending functionalityjupyter
- Jupyter integrationspec
- API specificationui
- Shared React componentsutils
- Shared utilities
Configuration packages in /packages/config
:
eslint
- ESLint configurationtsconfig
- TypeScript configuration
- JupyterHub running on a local Kubernetes cluster
- VSCode (recommended)
- Bun runtime/package manager
- (Free) Turso account for database
- (Free) Resend account for email
- Clone the repository:
git clone https://github.com/lucaschultz/datadive.git
cd datadive
- Install dependencies:
bun install
bun run build
- Set up environment files:
cp apps/web/.env.development.example apps/web/.env.development.local
cp apps/api/.env.development.example apps/api/.env.development.local
-
Configure environment variables in
.env.development.local
files with your API keys -
Generate app key:
bun run cli make:app-key --env=apps/api/.env.development.local --force
- Create landlord database:
bun run cli make:landlord --env=apps/api/.env.development.local development
- Seed landlord database:
bun run cli seed:landlord --env=apps/api/.env.development.local
Start the development server:
bun run dev
The API will be available at http://localhost:3000 and the web app at http://localhost:3001.
Please see CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the LICENSE file in the repository.
Built as part of a thesis project at the Behavioral Security Research Group at the University of Bonn.