A React-based frontend for CKAN, designed to provide a user-friendly interface for exploring and managing open data. This project is part of an alpha testing phase to evaluate its effectiveness among a range of open data portal tools.
The Cobalt Open Data Portal is a frontend built with React that interacts with a CKAN backend via its RESTful API.
This project is currently in alpha testing and is being evaluated alongside other open data portal tools. It follows the Scottish Government Design System to ensure consistency with public sector digital services.
- Search and Filter: Easily search and filter datasets by keywords, organisations, and resource types.
- Dataset Details: View detailed information about datasets, including metadata, resources, and download links.
- CKAN API Integration: Seamlessly communicates with a CKAN instance using its RESTful API.
- CSV Exploration: Allows users to visualise and slice data from CSV resources.
Before you begin, ensure you have the following installed:
- Clone the repository:
git clone https://github.com/ScotGovAnalysis/CobaltDataPlatform.git
cd CobaltDataPlatform
- Install dependencies:
npm install
Before running the project, configure the environment:
- Copy the appropriate environment template:
For development:
cp .env.development.template .env.development
For release:
cp .env.release.template .env.release
- Populate the .env.development or .env.release file with the necessary configuration values.
To start the development server:
npm start
Open your browser and navigate to http://localhost:3000.
To create a development build:
npm run build:dev
To create a release build:
npm run build:release
To serve the built app locally:
npx serve -s build --single -l 3000
The frontend interacts with CKAN using its RESTful API. Key API endpoints used include:
-
Package Search: /api/3/action/package_search
-
Package Show: /api/3/action/package_show
-
Organisation List: /api/3/action/organization_list
For more information, refer to the CKAN API Documentation.
We welcome contributions! Please follow these guidelines when reporting issues:
- Bug Description (include screenshots if possible)
- Expected Behavior
- Actual Behavior
- Steps to Reproduce For feature requests, please describe the proposed functionality and its potential impact.