# Barbour, Andi
Github Repo: https://github.com/ambarb/DUTC_csx_run_reports
## Tell Us About…
### Your Project
- CLI was a preference, but I willing to switch to the following
- Convert functions that create custom experient summaries to use tiled
- Use functions in a web ap (or jupyterhub frontend) for users to customize summaries using a GUI-like experience
- Generate a .csv that can be downloaded so users can make notes on processing, bad scans, ect
- Would like for this to be a **production product**.
From Dan:
Andi and I chatted by phone after the 14 November session to rethink project scope. As she wrote above, she had planned to take the "Python CLI" track so we had to take a step back and brainstorm what (if any) web app would be useful.
We settled on an app that queries metadata and some columns of the "baseline" readings to populate a table. Search parameters (scan ID range, date, etc.) can be used to narrow which rows are show. The table should be exportable to CSV and perhaps directly to Google Sheets (if that's allowed).
We will take it as a given that users are authenticated and only have access to proposals they are on, so we don't need to worry about users searching for data that isn't theirs.
I think it makes sense to build this from scratch, working off of James' prototype/demo from the November 14 session rather than my own React app for two reasons. (1) My app uses TypeScript, which has an even steeper learning curve. (2) It's hard to picture making my app quite configurable enough to do exactly what Andi wants, particularly incorporating baseline readings in the table.
### Required Data
- CSX datastore or we can add more examples to Dan Allan's [public tiled dataset](https://tiled-demo.blueskyproject.io/api)
```python
from databroker.queries import TimeRange, RawMongo
from tiled.client import from_uri
c = from_uri("https://tiled-demo.blueskyproject.io/api")
csx = c["csx"]["raw"]
```
### Skills, tools, & technology
- Optimizing with tiled usage
- Better python code to make the datastore extraction fast as possble
- I have zero knowledge on how to implment these things in a WebApp or GUI in jupyter using React.
- If both are possible, then it gives the user more choice
- WebApp means that users don't need to waste allocation of jupyterhub memory
- Not sure if WebApp is realistic to for interacting with user data (not public)
### Homework for Mon Nov 7
- [x] if you have not already submitted the course survey with your Github username; please do so immediately
- [x] create a public Github repository for your project & add a link to it to your lab notebook
- [x] run the `my-first-data-app`
- Using [VScode](https://code.visualstudio.com/docs/setup/mac)
- [x] run `npm install`
- AB followed [instructions](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- AB used [Node.js installer for mac - macOS installer.pkg] (https://nodejs.org/en/download/)
- AB set this up in vscode, and used command line in vscode and it worked
- [x] run `npm watch dev` (used `npm run watch`)
- this doesn't seem to work. it suggests i type `npm run watch`, which does work.
- print to screen includes: `./node_modules/.bin/vite serve --debug --logLevel info --config vite.config.js src`.
- github README.md says this is the alternative, so this is **DONE**
- [x] read through the code for `src/index.jsx` in `my-first-data-app`
- [ ] identify what dataset(s) you want to look at
- [x] your dataset must be publicly available
- [public tiled server](https://tiled-demo.blueskyproject.io/api)
- has enough to get started, but no FCCD data
- need to select some appropriately sized FCCD data to cover all things at CSX
- [x] document that in your lab notebook
- [x] let Dan or Tom know if there may need to be special setup, access control
- confirmed with Dan via DMs on 11-7 public tiled approach. will try to select appropriate datasets to not waste too much memory
- [ ] download a hard-copy of your dataset in `.json` format (where appropriate/possible)
- Rather not because it could be alot of data, and I never interact with data this way.
- `.json` seems to be an extra step that does not scale well with users