Comments (6)
I'll need to add more here later, but here's a rough summary.
Guesstimate is a Single Page Application. Everything in this repo is the client side, which is one reason why this is called 'guesstimate-app'.
There are two important third party systems. Authentication is done with Auth0, and search/indexing is done with Algolia. This means that running it yourself involves some setup, but on the other hand it's pretty easy set up compared to what you may need in comparable systems. Both of these are free for moderate use. I recommend both, though should note that the way I set up Algolia was a bit hacky (not sure how to do it right).
There is also a small server in Rails, which is not yet on Github. I'd like to work on security a bit more before putting it on here (if select people want to work on it I'd be happy to share in a small group). However, this is quite tiny; just 2 models (users, spaces).
All models are stored and saved as 'spaces'. The spreadsheet content is all stored as json in Postgres. You can see the full requests if you look at the network tab in chrome.
However, while there are a few third party systems, everything will still work with just guesstimate-app, as long as you don't try to log in or save. In practice this means that you can do quite a bit of development, as you can edit any model on the site (just can't save them). It also makes much development quite simple when it's just on the website (not the server). The line that controls this is here:
"start": "BUILD_DEV=0 NODE_ENV=development API_ENV=production webpack-dev-server"
API_ENV=production (as opposed to development) means that it will use the production APIs.
from guesstimate-app.
How to run ( I think, can't try right now)
git clone [email protected]:getguesstimate/guesstimate-app.git
cd guesstimate-app
npm install
npm install rimraf lodash.assign lodash.pick find-root autoprefixer
npm run start
There are often errors with specific things, but it depends on what is already installed on the computer. Later we could put it in a docker container or something.
from guesstimate-app.
I'm happy to answer specific questions as they are raised.
In terms of the tech stack, the app is mostly React and Redux. Most code in src
. Most of it follows one or two organizational patterns, but it's a bit inconsistent in places, especially in the router lib and with regards to the stylesheets. Would love to clean it up sometimes, but if people have specific concerns I would be happy to help there.
from guesstimate-app.
Sweet, thanks! I might formulate that into a HACKING markdown file :)
from guesstimate-app.
For now I just put this in the README.md file
https://github.com/getguesstimate/guesstimate-app/blob/master/README.md
from guesstimate-app.
Closing for now. We could definitely improve what we have, but I believe this is sufficient for now. If anyone wants more specific things, please say so.
from guesstimate-app.
Related Issues (20)
- Frontend sometimes sends auth_id=undefined, resulting in 500 HOT 2
- [FR] Clearer indication that a user's session has expired
- Update to @auth0/auth0-react HOT 1
- Switch from JWT to httponly cookies HOT 1
- Metric reasoning tooltip doesn't show up until the page is reloaded
- Can't make model public when shareable link is enabled HOT 2
- MetricModal doesn't get focus on first render
- Replace DraftJS HOT 1
- [FR] Manifold Markets integration HOT 1
- User Account Page Won't Open HOT 3
- Implement refresh tokens HOT 1
- Typescript strict=true
- Replace Redux with React contexts
- Use new Next 14 app router
- Fix shift+tab and shift+enter
- Yarn -> pnpm
- Remove recorder code
- Get rid of magic constants in code
- Sensitivity analysis varies depending on on ordering of sample
- Work disappeared and replaced by another model HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from guesstimate-app.