Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v1.4 #764

Merged
merged 58 commits into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
09d94cb
Merge pull request #586 from goplus/main
nighca Jun 7, 2024
762c452
dropdown with tooltip (#594)
ComfyFluffy Jun 14, 2024
cb582dc
lint: enable vue/no-undef-components (#595)
ComfyFluffy Jun 14, 2024
3d6100a
fix: delay on click to stop SoundPlayer (#596)
ComfyFluffy Jun 14, 2024
d286987
smoother waveform (#589)
ComfyFluffy Jun 14, 2024
dd037a1
load audio after recording (#598)
ComfyFluffy Jun 17, 2024
57d0c3a
Product doc for animation support (#597)
nighca Jun 18, 2024
9203581
refactor: sound editor & recorder (#607)
ComfyFluffy Jun 24, 2024
a2a8227
Fix last-select issue when project switched (#612)
nighca Jun 25, 2024
b29bb3d
Model `Animation` (#609)
nighca Jun 25, 2024
7f5e28b
Costume pre-processing: split-sprite-sheet (#614)
nighca Jun 27, 2024
a5632e0
Remove right-click menu for backdrop (#616)
ComfyFluffy Jun 28, 2024
1f8bd4e
fix normalizeAssetName (#619)
nighca Jun 28, 2024
b349b7c
Save text files directly to the DB for performance (#617)
aofei Jun 28, 2024
79140cd
update model animation (#620)
nighca Jun 28, 2024
5a8d9b6
component `AnimationSettings` (#621)
nighca Jul 1, 2024
3efd54a
fix cancelled warning in console (#625)
nighca Jul 2, 2024
988e6da
fix(spx-gui): save to cloud after sharing project and remove login re…
aofei Jul 3, 2024
bccc791
refactor(spx-gui): remove "codeFile" concept and optimize project sav…
aofei Jul 3, 2024
d9aab89
Animation Editor UI (#626)
ComfyFluffy Jul 3, 2024
00c76bb
hide onTouched (#632)
nighca Jul 4, 2024
d534306
Update code-editor for animation (#629)
nighca Jul 4, 2024
13d851c
Preload frames & audio / removal modal (#633)
ComfyFluffy Jul 4, 2024
6003a25
animation details (#634)
nighca Jul 4, 2024
9b52f27
Update docs (#636)
nighca Jul 5, 2024
42da76c
Use center point as sprite pivot (#615)
nighca Jul 9, 2024
33bd5c7
refactor preload / modify translation (#635)
ComfyFluffy Jul 9, 2024
d09c607
`RotationStyle` support (#639)
nighca Jul 10, 2024
b423974
Debug animation sound on project load (#640)
nighca Jul 10, 2024
37af997
add preview for `GroupCostumesModal` (#646)
nighca Jul 12, 2024
8dbdef8
Product doc for Widget (#644)
nighca Jul 15, 2024
e127437
Support remove-background (#650)
nighca Jul 18, 2024
b3e09a7
spx-gui: implement automatic project save to cloud (#649)
aofei Jul 19, 2024
99878bc
Uniform item style (#641)
ComfyFluffy Jul 19, 2024
0c85ec4
Migrate to ghcr.io (#654)
ComfyFluffy Jul 19, 2024
0018c3a
dockerfile: utilize pre-built images for Go+ and Nginx (#660)
aofei Jul 22, 2024
207b3e9
dockerfile: fix nginx.conf copy path (#661)
aofei Jul 22, 2024
2da14df
spx-gui: avoid calling `next` within `router.beforeEach` (#664)
aofei Jul 22, 2024
bd1fdca
spx-gui: remove unnecessary `defineProps` and `defineEmits` imports (…
aofei Jul 23, 2024
2ea61bf
adapt animation for spx API change (#647)
nighca Jul 23, 2024
bae5459
pr-preview: use mirrors for Go and Node modules downloads during `doc…
aofei Jul 23, 2024
f0c46bb
spx-gui: implement batched object URL processing and optimize lazy lo…
aofei Jul 24, 2024
31d6a14
spx-gui: delay input URL processing in RemoveBackground component (#669)
aofei Jul 25, 2024
abeff36
fix required prop warnings (#673)
ComfyFluffy Jul 26, 2024
9768966
feat: add build script to support windows (#675)
molinla Jul 26, 2024
7946138
spx-gui: prevent event propagation on UICornerIcon click (#674)
aofei Jul 26, 2024
a63333b
Fix animation sound loss during undo/redo (#718)
nighca Aug 9, 2024
2b0440d
keep order of sprites & sounds (#720)
nighca Aug 9, 2024
40c7824
configurable AIGC feature (#726)
nighca Aug 9, 2024
6c472ee
Self-host monaco instead of `cdn.jsdelivr.net` (#729)
ComfyFluffy Aug 9, 2024
abee70c
spx-gui: upload files when adding resource (#732)
aofei Aug 12, 2024
6f51ee1
feat: custom sprite transformer (#723)
ComfyFluffy Aug 13, 2024
520025f
spx-gui: auto save unsaved changes on route change (#737)
aofei Aug 13, 2024
b1f4479
spx-gui(UIDropdown): fix `NPopover.setShow` not triggering `on-update…
aofei Aug 13, 2024
65ef205
update favicon (#747)
nighca Aug 14, 2024
433b39b
Automatically select the first animation on sprite switch (#749)
ComfyFluffy Aug 14, 2024
46f8e1f
update casdoor config (#762)
ComfyFluffy Aug 16, 2024
7412197
Widget Monitor (#676)
nighca Aug 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 15 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,29 @@ on:
paths-ignore:
- 'docs/**'

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-deploy:
runs-on: ubuntu-latest

permissions:
contents: read
packages: write
id-token: write

steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/checkout@v4

Expand All @@ -34,4 +44,4 @@ jobs:
with:
context: .
push: true
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/builder-spx-gui:latest
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
32 changes: 16 additions & 16 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,34 +1,36 @@
# All-in-one Dockerfile for building the SPX GUI
ARG image_address
FROM ${image_address}golang:1.21 as go-builder

ARG GOP_BASE_IMAGE=ghcr.io/goplus/gop:1.2
ARG NODE_BASE_IMAGE=node:20.11.1
ARG NGINX_BASE_IMAGE=nginx:1.27

FROM ${GOP_BASE_IMAGE} AS go-builder

WORKDIR /app

# Build WASM
COPY tools ./tools
COPY spx-backend ./spx-backend

ARG GOPROXY

# Build WASM
WORKDIR /app/tools/fmt
RUN ./build.sh

WORKDIR /app/tools/ispx
RUN ./build.sh

# Install Go+
RUN bash -c ' echo "deb [trusted=yes] https://pkgs.goplus.org/apt/ /" > /etc/apt/sources.list.d/goplus.list' \
&& apt update \
&& apt install -y gop

# Build backend
WORKDIR /app/spx-backend
RUN gop build -o spx-backend ./cmd/spx-backend

FROM ${image_address}node:20.11.1 as frontend-builder
FROM ${NODE_BASE_IMAGE} AS frontend-builder

WORKDIR /app/spx-gui

COPY spx-gui/package.json spx-gui/package-lock.json ./

ARG NPM_CONFIG_REGISTRY

RUN npm install

COPY spx-gui .
Expand All @@ -39,13 +41,11 @@ COPY --from=go-builder /app/tools/ispx/main.wasm /app/spx-gui/src/assets/ispx/ma

RUN npm run build

FROM go-builder

# Install nginx
RUN apt update && apt install -y nginx
FROM ${NGINX_BASE_IMAGE}

COPY --from=go-builder /app/spx-backend/spx-backend /app/spx-backend/spx-backend
COPY --from=frontend-builder /app/spx-gui/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/sites-available/default
COPY nginx.conf /etc/nginx/conf.d/default.conf

# Compress WASM files for gzip_static
RUN find /usr/share/nginx/html -name "*.wasm" -exec gzip -9 -k {} \;
Expand All @@ -54,4 +54,4 @@ EXPOSE 80

WORKDIR /app

CMD ./spx-backend/spx-backend & nginx -g "daemon off;" & wait
CMD ["sh", "-c", "nginx && exec ./spx-backend/spx-backend"]
53 changes: 8 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,15 @@
# 💐GO+ Builder
# Go+ Builder

GO+ Builder is an innovative online educational platform designed specifically for children's programming. With a focus on STEM (Science, Technology, Engineering, and Mathematics) education, our platform provides an interactive and engaging learning experience that encourages creativity and problem-solving through coding.
Go+ Builder is a tool for building games. We create it to help children to learn [abilities to build](https://github.com/goplus/builder/issues/531).

## 📖Features
Go+ Builder is developed based on [spx](https://github.com/goplus/spx), which is a game engine built on [Go+](https://goplus.org/).

GO+ Builder offers a wide range of features designed to support both offline and online learning environments:
![Go+ Builder Screenshot](./docs/screenshot.jpeg)

### Offline Features:
## How to try

- **Editor:** Code highlighting, code clearing, code folding, syntax checking, auto-completion, and error prompts after execution.
- **Toolbar:** Use shortcut commands to add corresponding code snippets quickly.
- **Sound:** Upload and record sounds locally. Modify and delete sounds in real time within your project.
- **Backdrop:** Upload backdrop locally, delete backdrop in real time.
- **Sprite:** Add, modify, and delete sprites. Features include uploading from local storage or importing Scratch project assets, adjusting object names, coordinates, visibility, size, and direction.
- **Project Import:** Upload projects from your device or create new blank projects. Supports public and private projects, as well as creating new blank projects.
- **Project Storage:** Save projects to browser cache for easy access on subsequent visits.
- **Project download:** Save the project zip package locally.
- **Real-Time Display:** Dynamically display animations on stage.
- **Execution and Pause display:** Run and pause display with ease.
- **File Management:** Switching the selected sprite switches the code file.
- **Multilingual Support:** Switch between multiple languages, including Chinese and English.
You can visit https://builder.goplus.org to try Go+ Builder.

### Online Features:
## How to develop

- **Asset Library:** Access private and public asset libraries with sorting options (popularity/release time), categorization by tags, and text-based search functionality.
- **Sprite Asset Library:** Hover to preview multiple animations.
- **Sprite/Backdrop:** Easily import from the asset library.
- **Project Import**: load Project from the cloud.
- **Cloud Project Storage:** Save project files to the cloud.
- **Project Publishing:** Toggle projects between public and private visibility.
- **Authentication:** Log in and out using GO+ community accounts.

### **Widget Integration:**

Embed SPX online programming and game animations directly into your projects.

## ✨How to Use (For Users)

Access the online platform at [GO+ Builder Homepage](https://builder.goplus.org) for an engaging coding experience.

For a guide on how to get started with GO+ Builder, please refer to our [usage guide](./docs/usage/usage.md).

## ✨How to Install (For Developers)

Developers looking to contribute or customize the platform can find detailed installation instructions on our [installation guide](./docs/installation/installation.md).

## 📦Contribution

We welcome contributions! For guidelines on how to contribute to GO+ Builder, please check out our [contribution guide](./docs/contribution/contribution.md).

Join us in making GO+ Builder more accessible and enjoyable for children around the world. Let's code, create, and learn together with GO+ Builder!
See details in [Develop Go+ Builder](./docs/develop/index.md).
4 changes: 0 additions & 4 deletions docs/api-doc/api-document.md

This file was deleted.

80 changes: 0 additions & 80 deletions docs/architecture/01_architecture.md

This file was deleted.

69 changes: 0 additions & 69 deletions docs/architecture/02_assetLibrary.md

This file was deleted.

39 changes: 0 additions & 39 deletions docs/architecture/03_assetList.md

This file was deleted.

Loading
Loading