Skip to content

danjkim21/adv-nuclear-reactor-client

Repository files navigation


Advanced Nuclear Reactor Database (arDB) v2

Front-end repo utilizing the arDB API, containing web scraped data of advanced nuclear reactor designs.
Explore the docs »

View Client Site · View API Site

About The Project

arDB demo gif

As an energy wonk, I've notice how difficult it is find up to date information on advanced nuclear reactor designs. This project aims to aggregate information on all advanced nuclear reactor technologies that exist around the world.

This project is the second iteration of the arDB (Version One Link). This second iteration enhances the scraper to allow for multiple sources, and builds out the front end using React.js. It is a work in progress and the data is constantly evolving as I enhance my web scraper script and add new sources.

Navigate to Backend Repository:

How It's Made

Tech used:

The data for this API project was obtained by creating a custom web scraper script using Cheerio. At the moment, the scraper pulls data from the International Atomic Energy Agency but the scraper will be enhanced to receive multiple url inputs (if you have any quality sources, please let me know!).

Getting Started

This API can be accessed via https://api-ardb.vercel.app/api or as a local copy. To get a local copy up and running follow these simple example steps.

Endpoints

  1. Return full API database
    https://api-ardb.vercel.app/api
    
  2. Search API by Reactor Name
    https://api-ardb.vercel.app/api/:reactorName
    
  3. Return List of all Reactor Types
    https://api-ardb.vercel.app/api/categories
    
  4. Search API by Reactor Types
    https://api-ardb.vercel.app/api/categories/:reactorType
    

Installation

  1. Clone the repo
    git clone https://github.com/github_username/repo_name.git
  2. Install NPM packages
    npm install

Usage

  1. Run server
     npm run dev
  2. Navigate to server
    `localhost:5173`

Road Map

  • Finish building out the search reactor feature
  • Interactive data table feature to sort reactors by specific item (eg. thermal output)
  • Feature: Build Login-authentication portal
  • Feature: to allow reactor developers to add reactor data
  • Refactor front end react and back end code

See the open issues for a full list of proposed features (and known issues).

Lessons Learned:

My biggest take away is how powerful JavaScript is as a language. Prior to this project, I assumed that I would always need Python to scrape any web content. After finding Cheerio, scraping content became--dare I say--a much less daunting experience due to how intuitive and easy to use Cheerio is.

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Daniel Kim - @devdanielk - [email protected]

Project Link: https://github.com/danjkim21/adv-nuclear-reactor-client

Live Link: https://ardb.vercel.app/

Project V1 Repo: https://github.com/danjkim21/adv-nuclear-reactor-api

Acknowledgments

(back to top)