Quick guide on how to run? In the terminal:
- source setup_env.sh
- ./setup_mysql.sh
- ./setup_app.sh
Current features supported: All 5 basic features:
- user creation/deletion
- user login/management
- user search history
- bookmark
- sorting
- Research Grant Analytics Platform (RGAP)
RGAP is a comprehensive web-based analytics platform analyzing research funding data from Canada's three major research funding agencies: NSERC (Natural Sciences and Engineering Research Council), CIHR (Canadian Institutes of Health Research), and SSHRC (Social Sciences and Humanities Research Council). The platform leverages open data from Open Canada (https://search.open.canada.ca/grants), which provides detailed grant information from these agencies:
- NSERC: 136,034+ grant records
- CIHR: 39,768+ grant records
- SSHRC: 55,808+ grant records Total Dataset: 231,610+ grants
The platform will provide researchers, administrators, and the public with insights into funding patterns, institutional success rates, and research investment trends across Canadian academic institutions.
- Integration of tri-agency funding data
- Cross-agency funding pattern analysis
- Geographical distribution of research funding
- Program-specific success metrics
- Institutional funding trajectories
- Installation Guide
- User Guide
- Developer Guide
- API Reference
- Data Documentation
- Data Fetcher Guide
- MySQL for RGAP Guide
- Troubleshooting
- React 18.2.0+
- Tailwind CSS for styling
- Recharts/chart.js for data visualization
- React Query for data fetching
- Node.js + Express
- MySQL 8.0.36
- RESTful API design
- Git & GitHub
- npm for package management
- Docker for development environment
- Node.js 22.14.0+
- MySQL 8.0.36+
- Python 3.12.7+ (for data fetching)
- 7zip (optional, for better data compression)
-
Clone the repository
git clone https://github.com/jaxendutta/rgap.git cd rgap -
Set up environment variables and packages
source setup_env.sh -
Run the MySQL setup script
./setup_mysql.sh
-
Start the application
./setup_app.sh
This will:
- Set up a local MySQL instance
- Install dependencies for server and client
- Create database schema and import sample data
- Start the server and client applications
The setup will display URLs for accessing the application, typically:
- Client: http://localhost:3000
- Server: http://localhost:4000
RGAP comes with sample data, but you can import the full dataset:
# Fetch data from the tri-agency sources
python fetcher.py --year-start 2019 --year-end 2023 --save
# Import the downloaded data
./setup_app.sh --full-
Comprehensive Grant Search
- Multi-agency search capability
- Filter by program, date range, amount
- Advanced filtering options (institution, location)
-
Institution Analytics
- Funding history visualization
- Success rate analysis
- Program participation metrics
-
Program Analysis
- Success rates by program
- Funding distribution analysis
- Year-over-year comparisons
-
Geographic Distribution
- Provincial funding distribution
- Institution concentration analysis
- Regional success rates
-
Temporal Analysis
- Funding trends over time
- Seasonal pattern analysis
- Multi-year grant tracking
-
Cross-Agency Analytics
- Comparative funding analysis
- Inter-agency program relationships
- Combined success metrics
-
Machine Learning Insights
- Funding success prediction
- Pattern recognition
- Anomaly detection
-
Custom Report Generation
- Configurable metrics
- Multiple export formats
- Scheduled reports
-
Research Network Analysis
- Institution collaboration patterns
- Research field clustering
- Geographic collaboration mapping
-
Program Impact Metrics
- Outcome tracking
- ROI analysis
- Success indicator monitoring
- 100 grants per agency
- 20 institutions
- 5 years of historical data
- Complete program coverage
- Full tri-agency data (231K+ grants)
- All Canadian institutions
- 25+ years of historical data
- Complete program listings
- Data extraction from Open Canada portal using their standardized grant data format
- Agency-specific data parsing (NSERC, CIHR, SSHRC formats)
- Data cleaning and normalization
- Agency-specific transformations
- Database loading and validation
- Indexed queries for common searches
- Materialized views for analytics
- Partitioning for historical data
- Query optimization for large datasets
- Client-side caching
- Server-side response caching
- Pagination for large result sets
- Lazy loading of components