mirror of
https://github.com/awatertrevi/xamarin-neo4j.git
synced 2026-10-09 19:08:04 +00:00
Fixes
This commit is contained in:
@@ -1,135 +1,77 @@
|
|||||||
# PocketGraph - Neo4j Mobile Client
|
# PocketGraph
|
||||||
|
|
||||||
[](https://github.com/kl0070/xamarin-neo4j/actions/workflows/deploy-pages.yml)
|
[](https://github.com/kl0070/xamarin-neo4j/actions/workflows/integration-tests.yml)
|
||||||
|
|
||||||
A powerful mobile Neo4j database client for iOS and iPad, built with Xamarin.Forms.
|
A mobile Neo4j and Memgraph client for iOS, built with .NET MAUI.
|
||||||
|
|
||||||
[](https://apps.apple.com/nl/app/pocketgraph/id1604368926)
|
[](https://apps.apple.com/nl/app/pocketgraph/id1604368926)
|
||||||
|
|
||||||
🌐 **[Visit our website](https://kl0070.github.io/xamarin-neo4j/)** for more information and beautiful screenshots!
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
PocketGraph is a professional Neo4j graph database client that brings the power of Neo4j to your mobile device. Connect to your Neo4j instances securely via the lightning-fast Bolt protocol with SSL encryption, and manage your graph data on the go.
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
### 🔐 Secure Connections
|
- Connect via the Bolt protocol with SSL/TLS support
|
||||||
- Connect via the lightning-fast Bolt protocol
|
- Compatible with Neo4j and Memgraph
|
||||||
- SSL/TLS encrypted connections
|
- Interactive graph visualization with expand/collapse
|
||||||
- Multiple connection management
|
- Table view for query results
|
||||||
- Database switching support
|
- Save and manage connections and queries
|
||||||
|
- Light and dark theme
|
||||||
### 📊 Data Visualization
|
- iPhone and iPad support (iOS 14.2+)
|
||||||
- **Graph View**: Visualize nodes and relationships in an interactive graph
|
|
||||||
- **Table View**: View query results in a structured table format
|
|
||||||
- Interactive data exploration
|
|
||||||
|
|
||||||
### ✍️ Advanced Query Editor
|
|
||||||
- Syntax highlighting for Cypher queries
|
|
||||||
- Query history and management
|
|
||||||
- Save and organize your queries
|
|
||||||
- Execute Cypher queries directly
|
|
||||||
|
|
||||||
### 🎨 Modern Interface
|
|
||||||
- Light and Dark theme support
|
|
||||||
- Responsive design for iPhone and iPad
|
|
||||||
- Intuitive navigation
|
|
||||||
- FontAwesome icon integration
|
|
||||||
|
|
||||||
### 📱 Platform Support
|
|
||||||
- iPhone (iOS 14.2+)
|
|
||||||
- iPad (iPadOS 14.2+)
|
|
||||||
- Apple Silicon Mac (macOS 11.0+)
|
|
||||||
- Apple Vision Pro (visionOS 1.0+)
|
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
Xamarin.Neo4j/
|
Xamarin.Neo4j/
|
||||||
├── Xamarin.Neo4j/ # Shared Xamarin.Forms project
|
├── Xamarin.Neo4j/ # Shared .NET MAUI project
|
||||||
│ ├── Controls/ # Custom UI controls
|
├── Xamarin.Neo4j.iOS/ # iOS platform project
|
||||||
│ ├── Converters/ # XAML value converters
|
├── Xamarin.Neo4j.Tests/ # Unit tests
|
||||||
│ ├── Managers/ # Connection and query managers
|
└── Xamarin.Neo4j.IntegrationTests/ # Integration tests (Neo4j + Memgraph via Docker)
|
||||||
│ ├── Models/ # Data models
|
|
||||||
│ ├── Pages/ # Application pages
|
|
||||||
│ ├── Services/ # Business logic services
|
|
||||||
│ ├── ViewModels/ # MVVM view models
|
|
||||||
│ └── Visualization/ # Graph visualization components
|
|
||||||
├── Xamarin.Neo4j.Android/ # Android-specific implementation
|
|
||||||
├── Xamarin.Neo4j.iOS/ # iOS-specific implementation
|
|
||||||
└── Xamarin.Neo4j.Tests/ # Unit tests
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Key Components
|
|
||||||
|
|
||||||
### Services
|
|
||||||
- **Neo4jService**: Handles all Neo4j database operations via Bolt protocol
|
|
||||||
- **ConnectionStringManager**: Manages saved connections
|
|
||||||
- **SavedQueryManager**: Organizes and stores queries
|
|
||||||
|
|
||||||
### Pages
|
|
||||||
- **ConnectionsPage**: Manage database connections
|
|
||||||
- **SessionPage**: Execute queries and view results
|
|
||||||
- **GraphPage**: Interactive graph visualization
|
|
||||||
- **TablePage**: Tabular data view
|
|
||||||
- **QueriesPage**: Saved queries management
|
|
||||||
- **SettingsPage**: Application settings
|
|
||||||
|
|
||||||
## Technology Stack
|
|
||||||
|
|
||||||
- **Framework**: Xamarin.Forms
|
|
||||||
- **Database**: Neo4j (Bolt Protocol)
|
|
||||||
- **Languages**: C#, XAML
|
|
||||||
- **Visualization**: Custom WebView integration with Neovis.js
|
|
||||||
- **Architecture**: MVVM (Model-View-ViewModel)
|
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
- Visual Studio 2019/2022 or Visual Studio for Mac
|
- .NET 10 SDK
|
||||||
- Xamarin workload installed
|
- Xcode (for iOS builds)
|
||||||
- iOS development: macOS with Xcode
|
- Docker (for integration tests)
|
||||||
- Android development: Android SDK
|
|
||||||
|
|
||||||
### Building the Project
|
### Building
|
||||||
|
|
||||||
1. Clone the repository:
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/kl0070/xamarin-neo4j.git
|
cd Xamarin.Neo4j
|
||||||
cd xamarin-neo4j
|
dotnet build Xamarin.Neo4j.sln
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Open the solution:
|
|
||||||
```bash
|
|
||||||
open Xamarin.Neo4j/Xamarin.Neo4j.sln
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Restore NuGet packages and build the solution
|
|
||||||
|
|
||||||
### Running Tests
|
### Running Tests
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotnet test Xamarin.Neo4j/Xamarin.Neo4j.Tests/Xamarin.Neo4j.Tests.csproj
|
# Unit tests
|
||||||
|
dotnet test Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Tests/
|
||||||
|
|
||||||
|
# Integration tests (requires Docker)
|
||||||
|
dotnet test Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.IntegrationTests/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Technology Stack
|
||||||
|
|
||||||
|
- .NET MAUI
|
||||||
|
- Neo4j.Driver (Bolt protocol)
|
||||||
|
- C# / XAML
|
||||||
|
- MVVM architecture
|
||||||
|
- Testcontainers for integration testing
|
||||||
|
|
||||||
## Privacy
|
## Privacy
|
||||||
|
|
||||||
PocketGraph does not collect any user data. All connections and queries are stored locally on your device.
|
PocketGraph does not collect any user data. All connections and queries are stored locally on your device.
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
PocketGraph is created by [Re: Software B.V.](https://resoftware.nl)
|
PocketGraph is a product of [Re: Software](https://resoftware.nl).
|
||||||
|
|
||||||
**Note**: The Neo4j Graph Database is a product created by Neo4j, Inc. Neo4j® and Cypher® are registered trademarks of Neo4j, Inc.
|
Neo4j and Cypher are registered trademarks of Neo4j, Inc.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
See [LICENSE](LICENSE) file for details.
|
See [LICENSE](LICENSE) for details.
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
For support, please contact: info@resoftware.nl
|
Contact: support@resoftware.nl
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Available on the App Store** - [Download PocketGraph](https://apps.apple.com/nl/app/pocketgraph/id1604368926)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user