Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ethancheez committed Nov 11, 2023
1 parent fee7db1 commit e386d9e
Show file tree
Hide file tree
Showing 125 changed files with 18,252 additions and 2 deletions.
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/task-description.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Task Description
about: Describe a task to be accomplished
title: ''
labels: ''
assignees: ''

---

Please do work for this task in a branch named issue-XXX.
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: ci-meteor-application-template-react

on:
push:
branches:
- main

defaults:
run:
working-directory: ./app

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-v5-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}

- uses: actions/setup-node@v3
with:
node-version: '16.x'

- run: npm ci --legacy-peer-deps

- run: curl https://install.meteor.com/ | sh

- name: Run Meteor commands
shell: bash -l {0}
run: |
meteor npm install
meteor npm run lint
# meteor npm run testcafe-ci
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
*.iml
.idea
.DS_Store
node_modules
.config
**settings.development.json
app/.deploy/mup.js
app/.deploy/settings.json
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023 HACC2023
Copyright (c) 2019

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
55 changes: 54 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,54 @@
# VENGEN
## LahainaSim
Current status of LahainaSim [![ci-meteor-application-template-react](https://github.com/ics-software-engineering/meteor-application-template-react/actions/workflows/ci.yml/badge.svg)](https://github.com/ics-software-engineering/meteor-application-template-react/actions/workflows/ci.yml)

Lahaina Sim is an interactive web application designed to foster creativity and community engagement in the aftermath of the devastating wildfires that swept through Lahaina. Users are invited to participate in the reconstruction efforts by uploading their own 3D models, enabling them to simulate and visualize potential rebuilding scenarios. Users can enhance their uploaded models by pairing them with personally uploaded inspiration images or custom generated inspiration images directly within the app, utilizing the DALLE-2 integration. This platform serves as a virtual canvas where individuals can share and exchange ideas, sparking collaborative discussions about the future architectural landscape of Lahaina. Whether it's proposing innovative designs or discussing the intricacies of simulations, Lahaina Sim provides a space for collective brainstorming and envisioning a resilient and vibrant future for the city.

In addition to its simulation capabilities, Lahaina Sim offers a comprehensive insight into the demographic and visitor statistics of Maui County. Users can access valuable data that provides a deeper understanding of the community, helping to inform decision-making processes during the rebuilding phase. By integrating these statistical features, Lahaina Sim not only acts as a creative hub for architectural ideation but also as a repository of information that empowers users with a holistic view of the region. Through this dual functionality, Lahaina Sim emerges as a dynamic platform where innovation, community engagement, and data-driven decision-making converge to shape the restoration and revitalization of Lahaina.

## How to use LahainaSim

### Deployed Version
To visit the deployed application, visit the website using any web browser.

#### User Instructions
1. Sign in/Sign up
- Create an account or log into an existing one
2. Upload models
- Navigate to the New Model page
- Select a 3D model from local files and upload it
- Upload any inspirations photos or generate custom ones with text prompts to DALLE-2
- Fill in the name and estimate cost to build the model
3. Create Simulations
- Navigate to the Simulation page
- Select models to place on the map, adjust as desired
- Upload the simulation to the Gallery
4. Explore the Gallery
- Navigate to the Gallery page
- Click on any model or simulation to view
5. Engage in Discussions
- Navigate to the Discussions page
- Share any thoughts, ideas, or feedback about the model or simulation
- Create a new thread to engage in discussions outside of a model or simulation
6. View Statistics
- Navigate to the Statistics page
- Click on any of the counties to view demographic statistics
- Click on visitor statistics for statewide visitor statistics

### Source Code
For developers to run the local version of this application, they will need to have Node.js and Meteor installed. They will also need to get the following API keys: Amazon S3, OpenAI, Mapbox, and Google.

1. Clone the repository to your local computer.
2. Change directory (``cd``) into the app/ directory, and install third party libraries with: ```meteor npm install```
Make a copy the settings.development.json file from config/ directory, and rename it to settings.production.json in the same directory.
3. Place your API keys under their corresponding section titles, under a property called "apiKey".
- For example, the OpenAI API key would be formatted as: "openai": { "apiKey": .... }
- Ensure the the Amazon S3 API key has the following properties: key, secret, bucket, and region.
4. In your terminal, change directory (cd) into the app/ directory and run the command: ```meteor npm run start```
5. Open http://localhost:3000 to view the running local application.

### Important Links
- GitHub Repository:
- Deployed Application:
- Functional Evaluation Video:

Template Details: http://ics-software-engineering.github.io/meteor-application-template-react/
8 changes: 8 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
title: meteor-application-template-react
description: A template for quickly starting Meteor application development
google_analytics:
show_downloads: true
theme: jekyll-theme-cayman

gems:
- jekyll-mentions
5 changes: 5 additions & 0 deletions app/.babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"presets": [
"@babel/preset-react"
]
}
2 changes: 2 additions & 0 deletions app/.deploy/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
mup.js
settings.json
26 changes: 26 additions & 0 deletions app/.deploy/mup.sample.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
module.exports = {
servers: {
one: {
host: '111.222.333.444',
username: 'root',
password: 'changeme'
}
},
app: {
// if you edit the app 'name' field, be sure to run 'mup stop' if the app is already running.
// otherwise you will have two apps deployed at once, with unpredictable results.
name: 'meteor-react-bootstrap-template',
path: '../',
servers: { one: {}, },
buildOptions: { serverOnly: true },
env: {
ROOT_URL: 'http://111.222.333.444',
MONGO_URL: 'mongodb://mongodb/meteor',
MONGO_OPLOG_URL: 'mongodb://mongodb/local',
},
docker: { image: 'zodern/meteor:latest' },
enableUploadProgressBar: true
},
mongo: { version: '5.0', servers: { one: {} }
},
};
18 changes: 18 additions & 0 deletions app/.deploy/settings.sample.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"defaultAccounts": [
{ "email": "admin@foo.com", "password": "changeme", "role": "admin" },
{ "email": "john@foo.com", "password": "changeme" }
],

"defaultData": [
{ "name": "Basket", "quantity": 3, "owner": "john@foo.com", "condition": "excellent" },
{ "name": "Bicycle", "quantity": 2, "owner": "john@foo.com", "condition": "poor" },
{ "name": "Banana", "quantity": 2, "owner": "admin@foo.com", "condition": "good" },
{ "name": "Boogie Board", "quantity": 2, "owner": "admin@foo.com", "condition": "excellent" }
],

"monti": {
"appId": "changeme",
"appSecret": "changeme"
}
}
55 changes: 55 additions & 0 deletions app/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
'plugin:react/recommended',
'plugin:meteor/recommended',
'airbnb',
],
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: [
'jsx',
'meteor',
'react',
],
rules: {
'arrow-parens': 'off',
camelcase: 'off',
'class-methods-use-this': 'off',
'func-names': 'off',
'import/no-absolute-path': 'off',
'import/no-unresolved': 'off',
'import/extensions': 'off',
'import/imports-first': 'off',
'import/prefer-default-export': 'off',
'import/no-extraneous-dependencies': 'off',
indent: ['error', 2],
'linebreak-style': 'off',
'max-len': ['error', 250],
'meteor/eventmap-params': [2, { eventParamName: 'event', templateInstanceParamName: 'instance' }],
'meteor/template-names': 'off',
'no-confusing-arrow': ['error', { allowParens: true }],
'no-plusplus': 'off',
'no-underscore-dangle': 'off',
'object-curly-newline': 'off',
'object-property-newline': 'off',
'object-shorthand': 'off',
'operator-linebreak': 'off',
'padded-blocks': 'off',
'prefer-arrow-callback': 'off',
'prefer-destructuring': 'off',
'prefer-promise-reject-errors': 'off',
'react/function-component-definition': [2, { namedComponents: 'arrow-function' }],
'react/jsx-one-expression-per-line': 'off',
'react/no-array-index-key': 'off',
},
};
4 changes: 4 additions & 0 deletions app/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.eot binary
*.ttf binary
*.woff binary
*.woff2 binary
19 changes: 19 additions & 0 deletions app/.meteor/.finished-upgraders
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# This file contains information which helps Meteor properly upgrade your
# app when you run 'meteor update'. You should check it into version control
# with your project.

notices-for-0.9.0
notices-for-0.9.1
0.9.4-platform-file
notices-for-facebook-graph-api-2
1.2.0-standard-minifiers-package
1.2.0-meteor-platform-split
1.2.0-cordova-changes
1.2.0-breaking-changes
1.3.0-split-minifiers-package
1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
1.7-split-underscore-from-meteor-base
1.8.3-split-jquery-from-blaze
1 change: 1 addition & 0 deletions app/.meteor/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
local
7 changes: 7 additions & 0 deletions app/.meteor/.id
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# This file contains a token that is unique to your project.
# Check it into your repository along with the rest of this directory.
# It can be used for purposes such as:
# - ensuring you don't accidentally deploy one app on top of another
# - providing package authors with aggregated statistics

1b0i1u976u6dkek239x
46 changes: 46 additions & 0 deletions app/.meteor/packages
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Meteor packages used by this project, one per line.
# Check this file (and the other files in this directory) into your repository.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.

# Core packages for Meteor/React/Semantic UI
meteor-base@1.5.1 # Packages every Meteor app needs to have
mobile-experience@1.1.0 # Packages for a great mobile UX
mongo@1.16.6 # The database Meteor supports right now
reactive-var@1.0.12 # Reactive variable for tracker

standard-minifier-css@1.9.2 # CSS minifier run for production mode
standard-minifier-js@2.8.1
es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers
ecmascript@0.16.7 # Enable ECMAScript2015+ syntax in app code
# typescript@3.7.6 # Enable TypeScript syntax in .ts and .tsx modules
shell-server@0.5.0 # Server-side component of the `meteor shell` command

# autopublish@1.0.7 # Publish all data to the clients (for prototyping)
insecure@1.0.7 # Allow all DB writes from clients (for prototyping)
static-html@1.3.2 # Define static page content in .html files
react-meteor-data # React higher-order component for reactively tracking Meteor data

# reactive-dict@1.3.0 # Object form of reactive variable.
# tracker@1.2.0 # Meteor's client-side reactive programming library

# Accounts
accounts-password@2.3.4
alanning:roles # support roles like 'admin'

# Collection support
aldeed:collection2
aldeed:schema-index # Support index: true and unique: true in schema definitions.

# Utilities
underscore@1.0.13 # http://underscorejs.org/
ejson@1.1.3 # https://docs.meteor.com/api/ejson.html

# Application Performance Monitoring
montiapm:agent # see http://montiapm.com
zodern:hide-production-sourcemaps
hot-module-replacement@0.5.3
dev-error-overlay@0.1.2
ostrio:files
accounts-2fa
2 changes: 2 additions & 0 deletions app/.meteor/platforms
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
server
browser
1 change: 1 addition & 0 deletions app/.meteor/release
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
METEOR@2.12
Loading

0 comments on commit e386d9e

Please sign in to comment.