npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

goci-cli

v2.1.0

Published

GDGoC ITB Command Line Interface for assignment submission

Readme

GOCI — GDGoC ITB Command Line Interface

A fast, reliable CLI to submit assignments to the GDGoC ITB Learning Management System.


🧰 Prerequisites

  • Node.js and npm (LTS recommended)

Verify:

node --version
npm --version

📦 Installation

Using npm (recommended)

# Install globally
npm install -g goci-cli@latest

# Or use directly without installing
npx goci-cli --help

Note: the published npm package name may differ depending on your registry setup.


🚀 Commands

goci --help         # Show help
goci -v             # Show CLI version
goci login          # Log in via browser (stores a local token)
goci logout         # Log out (deletes the local token)
goci submit "<Module Name>" <arg>   # Submit an assignment

<arg> semantics

  • File path → for modules that support GOCI (file upload)
  • URL → for modules that support Link

The CLI automatically resolves the module’s supported types and picks the right path based on your payload.


🧪 Examples

1) Log in

goci login

Your browser opens for authentication. Close the tab once successful.

2) Submit a file (GOCI)

goci submit "Introduction to Flutter" "./Week 10 Report.pdf"
# On Windows, always quote paths with spaces

3) Submit a link (Link)

goci submit "HTML & CSS Fundamentals" "https://gist.github.com/your-id/abcd1234"

4) Log out

goci logout

🛠️ Troubleshooting

  1. “You are not logged in.” Run goci login and complete the browser flow.

  2. “Your session has expired.” Token is invalid/expired. Run goci login again (the CLI removes the old token).

  3. “Module "" not found.”

    • Make sure the module name is correct.
    • The server checks case-insensitively, but it’s best to copy the exact title from LMS.
  4. “Module does not support Link/GOCI.” Your payload type doesn’t match the module’s supported submission types.

    • Use a URL for Link modules.
    • Use a file path for GOCI modules.
  5. “Payload is neither a valid URL nor an existing file path.”

    • For Link: ensure the URL starts with http:// or https://.
    • For GOCI: ensure the file exists and quote paths with spaces.
  6. Windows paths with spaces Always quote:

    goci submit "Intro to JS" "C:\Users\Me\Documents\my code\app.js"
  7. Network / server errors Check your internet connection and confirm the LMS API is reachable.


❓ FAQ

Do I need to pass my email to submit? No. The latest version uses your login token (not an email argument).

Is the module name case-sensitive? The backend matches case-insensitively, but using the exact LMS title is recommended.

Which file types can I upload? Depends on server policy. By default, the middleware accepts categories: code, image, document.


📄 License

MIT License