Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
c267a18
Initial commit: Add V-Start application files
WafaeBakkali Aug 25, 2025
d355634
docs: Add words to spell check allow list
WafaeBakkali Aug 25, 2025
9709f27
fix: Correct forbidden patterns
WafaeBakkali Aug 25, 2025
aa548bf
fix: Correct GCP acronym in README
WafaeBakkali Aug 25, 2025
a47a0e3
Merge branch 'main' into V-Start
holtskinner Aug 26, 2025
201d0db
Update vision/sample-apps/V-Start/Dockerfile
WafaeBakkali Aug 26, 2025
bc240bb
Update vision/sample-apps/V-Start/README.md
WafaeBakkali Aug 26, 2025
305559b
Update vision/sample-apps/V-Start/README.md
WafaeBakkali Aug 26, 2025
098144c
Update vision/sample-apps/V-Start/README.md
WafaeBakkali Aug 26, 2025
7338dce
Update .github/CODEOWNERS
WafaeBakkali Aug 26, 2025
ee4234f
Update vision/sample-apps/V-Start/README.md
WafaeBakkali Aug 26, 2025
15180ea
fix: Address code review feedback by refactoring templates
WafaeBakkali Aug 26, 2025
67e84b2
Merge branch 'V-Start' of https://github.com/WafaeBakkali/generative-…
WafaeBakkali Aug 26, 2025
b770f66
Merge branch 'main' into V-Start
holtskinner Aug 28, 2025
50e6ee5
Update .github/CODEOWNERS
WafaeBakkali Aug 28, 2025
e6387a7
Update vision/sample-apps/V-Start/README.md
WafaeBakkali Aug 28, 2025
17e8acf
Merge branch 'main' into V-Start
holtskinner Sep 2, 2025
212d1ea
feat: Set gcloud auth as default, use GenAI SDK, and add UI spinners
WafaeBakkali Sep 3, 2025
9d32f15
Merge branch 'V-Start' of https://github.com/WafaeBakkali/generative-…
WafaeBakkali Sep 3, 2025
42fefb7
style(server): Rename variable to resolve forbidden pattern lint error
WafaeBakkali Sep 3, 2025
734b902
Remove repo.png, replace with text
holtskinner Sep 5, 2025
908704b
Update genai sdk
WafaeBakkali Sep 6, 2025
70a3573
Merge branch 'V-Start' of https://github.com/WafaeBakkali/generative-…
WafaeBakkali Sep 6, 2025
baeece2
refactor: complete SDK migration and unify validation error messages
WafaeBakkali Sep 6, 2025
df5de3a
refactor: clean up verbose logging
WafaeBakkali Sep 6, 2025
198a8ba
docs: fix duplicate setup instructions and LICENSE links in README
WafaeBakkali Sep 6, 2025
36cafc8
refactor: rename LICENCE to LICENSE for consistency
WafaeBakkali Sep 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,10 @@
/generative-ai/speech/use-cases/storytelling @GoogleCloudPlatform/generative-ai-devrel @holtskinner
/generative-ai/vision/getting-started @GoogleCloudPlatform/generative-ai-devrel @iamthuya
/generative-ai/vision/gradio/gradio_image_generation_sdk.ipynb @GoogleCloudPlatform/generative-ai-devrel @jbrache
/generative-ai/vision/use-cases @GoogleCloudPlatform/generative-ai-devrel @iamthuya
/generative-ai/vision/use-cases/hey_llm @GoogleCloudPlatform/generative-ai-devrel @tushuhei
/generative-ai/vision/use-cases
@GoogleCloudPlatform/generative-ai-devrel @wafaeb
/generative-ai/vision/use-cases/hey_llm @GoogleCloudPlatform/generative-ai-devrel @iamthuya
/generative-ai/vision/sample-apps/V-Start @GoogleCloudPlatform/generative-ai-devrel @tushuhei
/generative-ai/open-models/serving/cloud_run_ollama_qwen3_inference.ipynb @GoogleCloudPlatform/generative-ai-devrel @vladkol
/generative-ai/open-models/get_started_with_model_garden_sdk.ipynb @GoogleCloudPlatform/generative-ai-devrel @inardini @lizzij
/generative-ai/open-models/use-cases/model_garden_litellm_inference.ipynb @GoogleCloudPlatform/generative-ai-devrel @lizzij
3 changes: 3 additions & 0 deletions .github/actions/spelling/allow.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ bert
Bettes
betulus
bff
BFirst
bgr
BGR
bgswap
Expand Down Expand Up @@ -245,6 +246,7 @@ cusagt
cva
CVD
CWLEY
cyberpunk
cycleway
cycleways
cygpath
Expand Down Expand Up @@ -1418,6 +1420,7 @@ VSPM
vtotal
vtt
vulnz
wafaeb
WAI
Wakatipu
waterjet
Expand Down
3 changes: 3 additions & 0 deletions vision/sample-apps/V-Start/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# .env.example
API_KEY="your_gemini_api_key_here"
PORT=8080
3 changes: 3 additions & 0 deletions vision/sample-apps/V-Start/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/node_modules

.env
36 changes: 36 additions & 0 deletions vision/sample-apps/V-Start/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Contributing to V-Start

First off, thank you for considering contributing to V-Start! We welcome any help, whether it's reporting a bug, suggesting a new feature, or writing code.

## How Can I Contribute?

### 🐛 Reporting Bugs

If you find a bug, please open an issue on our GitHub repository. When you report a bug, please include:

* **A clear and descriptive title.**
* **Steps to reproduce the bug.** Be as specific as possible.
* **What you expected to happen** versus what actually happened.
* **Screenshots or screen recordings** if they help illustrate the issue.

### ✨ Suggesting Enhancements

If you have an idea for a new feature or an improvement to an existing one, please open an issue to start a discussion. This allows us to coordinate our efforts and prevent duplication of work.

Please provide:

* **A clear and descriptive title.**
* **A detailed description of the proposed enhancement** and why you think it would be valuable.
* **Any mockups or examples** that might help explain your idea.

### 🔧 Pull Requests

We are happy to review pull requests! If you'd like to contribute code, please follow these steps:

1. **Fork the repository** and create your branch from `main`.
2. **Make your changes.** Please ensure your code follows the existing style of the project.
3. **Add comments** to any complex or non-obvious parts of your code.
4. **Ensure your code lints** without any errors.
5. **Open a pull request** with a clear title and a detailed description of the changes you've made.

Thank you for helping make V-Start better!
21 changes: 21 additions & 0 deletions vision/sample-apps/V-Start/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Use an official Node.js image. The 'lts' (Long Term Support) version is stable.
FROM node:18-alpine

# Set the working directory inside the container to /app
WORKDIR /app

# Copy package.json and package-lock.json first to leverage Docker's caching.
# This makes subsequent builds faster if you only change your source code.
COPY package*.json ./

# Install all project dependencies
RUN npm install

# Copy the rest of your application's source code into the container
COPY . .

# Expose port 8080 to the outside world
EXPOSE 8080

# The command to run when the container starts
CMD [ "node", "server.js" ]
51 changes: 51 additions & 0 deletions vision/sample-apps/V-Start/LICENCE
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS
Loading
Loading