|
1 | | -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). |
| 1 | +# DataPlug Web |
2 | 2 |
|
3 | | -## Getting Started |
| 3 | +A modern, responsive landing page for DataPlug - the cloud-aware data partitioning framework for scientific data, built with Next.js and Ant Design. |
4 | 4 |
|
5 | | -First, run the development server: |
| 5 | +## About DataPlug |
6 | 6 |
|
| 7 | +DataPlug is a client-side only, extensible Python framework with the goal of enabling efficient data partitioning of unstructured scientific data stored in object storage (like Amazon S3) for elastic workloads in the Cloud. |
| 8 | + |
| 9 | +### Key Features |
| 10 | +- **Cloud-Aware**: Specifically targets cold raw data in object storage (e.g. Amazon S3). Exploits S3 byte-range reads for parallel high-bandwidth access |
| 11 | +- **Read-Only**: Pre-processes data in read-only fashion. Indexes and metadata stored decoupled from raw objects, keeping cold data as-is |
| 12 | +- **Data Slicing**: Lazy-evaluated partitions with zero-cost re-partitioning. Serializable for distributed computing environments like PySpark, Dask, or Ray |
| 13 | +- **Multiple Domains**: Supports Genomics, Geospatial, Metabolomics, Generic, and Astronomics data |
| 14 | +- **Distributed Computing**: Compatible with PySpark, Dask, and Ray |
| 15 | + |
| 16 | +## Official Links |
| 17 | + |
| 18 | +- **[DataPlug Repository](https://github.com/CLOUDLAB-URV/dataplug)** - Main framework |
| 19 | +- **[Data Cockpit Repository](https://github.com/ubenabdelkrim/DataCockpit)** - Interactive Jupyter widget |
| 20 | +- **[PyRun Cloud Platform](https://pyrun.cloud/)** - Cloud execution platform |
| 21 | + |
| 22 | +## Tech Stack |
| 23 | + |
| 24 | +- **Framework**: Next.js 15 with App Router |
| 25 | +- **UI Library**: Ant Design (antd) |
| 26 | +- **Styling**: Tailwind CSS + Ant Design |
| 27 | +- **Language**: TypeScript |
| 28 | +- **Icons**: Ant Design Icons |
| 29 | +- **Deployment**: GitHub Pages (static export) |
| 30 | + |
| 31 | +## Project Structure |
| 32 | + |
| 33 | +``` |
| 34 | +src/ |
| 35 | +├── app/ |
| 36 | +│ ├── components/ # Reusable UI components |
| 37 | +│ │ ├── Header.tsx # Navigation header |
| 38 | +│ │ ├── Footer.tsx # Site footer |
| 39 | +│ │ └── sections/ # Page sections |
| 40 | +│ │ ├── HeroSection.tsx |
| 41 | +│ │ └── FeaturesSection.tsx |
| 42 | +│ ├── data/ # Data and content |
| 43 | +│ │ ├── features.ts # Feature definitions |
| 44 | +│ │ ├── domains.ts # Domain information |
| 45 | +│ │ ├── dataCockpit.ts # Data Cockpit content |
| 46 | +│ │ └── pyrun.ts # PyRun content |
| 47 | +│ ├── types/ # TypeScript interfaces |
| 48 | +│ │ └── index.ts # Centralized type definitions |
| 49 | +│ ├── config/ # Configuration |
| 50 | +│ │ ├── constants.ts # Site constants and colors |
| 51 | +│ │ └── site.ts # Site configuration |
| 52 | +│ ├── utils/ # Utilities |
| 53 | +│ │ └── index.ts # Common functions |
| 54 | +│ ├── lib/ # Utilities |
| 55 | +│ │ └── theme.ts # Ant Design theme config |
| 56 | +│ ├── docs/ # Documentation page |
| 57 | +│ │ └── page.tsx # Documentation with tabs |
| 58 | +│ ├── page.tsx # Main landing page |
| 59 | +│ ├── layout.tsx # Root layout |
| 60 | +│ └── globals.css # Global styles |
| 61 | +``` |
| 62 | + |
| 63 | +## Features |
| 64 | + |
| 65 | +### Landing Page |
| 66 | +- **Modern Design**: Clean, professional interface using Ant Design components |
| 67 | +- **Responsive Layout**: Optimized for all devices with Ant Design's grid system |
| 68 | +- **Interactive Elements**: Cards, buttons, statistics, and alerts |
| 69 | +- **Gradient Backgrounds**: Beautiful gradient sections for hero and CTA areas |
| 70 | +- **Smooth Animations**: Hover effects and transitions |
| 71 | + |
| 72 | +### Documentation |
| 73 | +- **Tabbed Interface**: Organized content with Ant Design Tabs |
| 74 | +- **Code Examples**: Syntax-highlighted code blocks with official examples |
| 75 | +- **Integration Guides**: PySpark and Dask examples from official repository |
| 76 | +- **API Reference**: Clean component-based documentation |
| 77 | +- **Performance Tips**: Alert components for important information |
| 78 | + |
| 79 | +### Ant Design Components Used |
| 80 | +- **Layout**: Header, Content, Footer structure |
| 81 | +- **Typography**: Title, Paragraph, Text components |
| 82 | +- **Cards**: Feature cards, domain cards, integration examples |
| 83 | +- **Buttons**: Primary, secondary, and ghost buttons |
| 84 | +- **Statistics**: Performance metrics display |
| 85 | +- **Steps**: Installation and architecture flow |
| 86 | +- **Tabs**: Documentation organization |
| 87 | +- **Alerts**: Important information display |
| 88 | +- **Lists**: Data format listings |
| 89 | +- **Tags**: Color-coded domain indicators |
| 90 | + |
| 91 | +## Ecosystem Integration |
| 92 | + |
| 93 | +### DataPlug + Data Cockpit + PyRun |
| 94 | +- **DataPlug**: Core data partitioning engine |
| 95 | +- **Data Cockpit**: Interactive Jupyter widget interface |
| 96 | +- **PyRun**: Cloud execution platform |
| 97 | + |
| 98 | +## Installation |
| 99 | + |
| 100 | +### DataPlug |
| 101 | +```bash |
| 102 | +pip install cloud-dataplug |
| 103 | +``` |
| 104 | + |
| 105 | +### Data Cockpit |
| 106 | +```bash |
| 107 | +pip install cloud_data_cockpit |
| 108 | +``` |
| 109 | + |
| 110 | +### Data Cockpit with Geospatial Support |
| 111 | +```bash |
| 112 | +pip install cloud_data_cockpit[geospatial] |
| 113 | +``` |
| 114 | + |
| 115 | +## Customization |
| 116 | + |
| 117 | +### Theme Configuration |
| 118 | +The Ant Design theme is configured in `src/app/lib/theme.ts`: |
| 119 | +- Primary color: `#1890ff` (blue) |
| 120 | +- Border radius: `8px` |
| 121 | +- Component-specific customizations |
| 122 | + |
| 123 | +### Colors |
| 124 | +- **Primary**: Blue gradient for hero sections |
| 125 | +- **Secondary**: Purple gradient for CTA sections |
| 126 | +- **Success**: Green for positive actions |
| 127 | +- **Warning**: Orange for alerts |
| 128 | +- **Error**: Red for errors |
| 129 | +- **Gradients**: Blue-purple for hero sections |
| 130 | + |
| 131 | +### Content |
| 132 | +- **Data**: Edit files in `src/app/data/` to update content |
| 133 | +- **Components**: Modify components in `src/app/components/` |
| 134 | +- **Styling**: Update `src/app/globals.css` for global styles |
| 135 | +- **Configuration**: Adjust constants in `src/app/config/constants.ts` |
| 136 | + |
| 137 | +## Development |
| 138 | + |
| 139 | +### Prerequisites |
| 140 | +- Node.js 18+ |
| 141 | +- npm or yarn |
| 142 | + |
| 143 | +### Installation |
7 | 144 | ```bash |
| 145 | +# Clone the repository |
| 146 | +git clone https://github.com/dataplug/dataplug-web.git |
| 147 | +cd dataplug-web |
| 148 | + |
| 149 | +# Install dependencies |
| 150 | +npm install |
| 151 | + |
| 152 | +# Start development server |
8 | 153 | npm run dev |
9 | | -# or |
10 | | -yarn dev |
11 | | -# or |
12 | | -pnpm dev |
13 | | -# or |
14 | | -bun dev |
15 | 154 | ``` |
16 | 155 |
|
17 | | -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. |
| 156 | +### Available Scripts |
| 157 | +```bash |
| 158 | +npm run dev # Start development server |
| 159 | +npm run build # Build for production |
| 160 | +npm run export # Generate static export for GitHub Pages |
| 161 | +npm run deploy # Deploy to GitHub Pages (manual) |
| 162 | +npm run lint # Run ESLint |
| 163 | +npm run type-check # Run TypeScript type checking |
| 164 | +npm run format # Format code with Prettier |
| 165 | +``` |
| 166 | + |
| 167 | +## Deployment to GitHub Pages |
| 168 | + |
| 169 | +This project is configured for automatic deployment to GitHub Pages: |
| 170 | + |
| 171 | +1. **Push to GitHub**: The GitHub Actions workflow will automatically trigger |
| 172 | +2. **Static Export**: Next.js builds and exports static files |
| 173 | +3. **Deploy**: Files are deployed to GitHub Pages |
| 174 | + |
| 175 | +### Manual Deployment |
| 176 | +```bash |
| 177 | +npm run deploy # Build and deploy manually using gh-pages |
| 178 | +``` |
18 | 179 |
|
19 | | -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. |
| 180 | +### Configuration |
| 181 | +- Static export is configured in `next.config.ts` |
| 182 | +- GitHub Actions workflow in `.github/workflows/deploy.yml` |
| 183 | +- Automatic deployment on push to `main` branch |
20 | 184 |
|
21 | | -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. |
| 185 | +## Performance |
22 | 186 |
|
23 | | -## Learn More |
| 187 | +- **Static Export**: Pre-built static files for fast loading |
| 188 | +- **Optimized Bundle**: Tree-shaking and code splitting for smaller bundles |
| 189 | +- **Modern Assets**: WebP and AVIF image formats support |
| 190 | +- **Fast Loading**: Optimized CSS and JavaScript delivery |
24 | 191 |
|
25 | | -To learn more about Next.js, take a look at the following resources: |
| 192 | +## Contributing |
26 | 193 |
|
27 | | -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. |
28 | | -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. |
| 194 | +1. Fork the repository |
| 195 | +2. Create a feature branch (`git checkout -b feature/amazing-feature`) |
| 196 | +3. Commit your changes (`git commit -m 'Add amazing feature'`) |
| 197 | +4. Push to the branch (`git push origin feature/amazing-feature`) |
| 198 | +5. Open a Pull Request |
29 | 199 |
|
30 | | -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! |
| 200 | +## License |
31 | 201 |
|
32 | | -## Deploy on Vercel |
| 202 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
33 | 203 |
|
34 | | -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. |
| 204 | +## Links |
35 | 205 |
|
36 | | -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. |
| 206 | +- [DataPlug Framework](https://github.com/CLOUDLAB-URV/dataplug) |
| 207 | +- [Data Cockpit](https://github.com/ubenabdelkrim/DataCockpit) |
| 208 | +- [PyRun Platform](https://pyrun.cloud/) |
| 209 | +- [Ant Design](https://ant.design/) |
| 210 | +- [Next.js](https://nextjs.org/) |
| 211 | +- [Documentation](https://dataplug.dev/docs) |
| 212 | +- [Issues](https://github.com/dataplug/dataplug-web/issues) |
0 commit comments