Giter Club home page Giter Club logo

hack-hour's Introduction

Hack Hour (Arcade)

Hack Hour is a project tracker & time management tool for hacking on projects. It's currently being used to track hours as a part of Hack Club's Arcade and is on slack as @hakkuun (but her name is heidi ๐Ÿ˜Š).

API

Note: There is no guarantee for the reliability of the API. If data is lost and/or is not registered for Arcade, there's not much we can do - use at your own risk.

All endpoints require an authorization header with the api key, as such: Authorization: Bearer <apikey>

GET /api/session/:slackId

Gets the latest session for the user.

Example Response:

{
    "ok": true,
    "data": {
        "id": "slackId",
        "createdAt": "2024-06-23T02:49:17.900Z",
        "time": 60,
        "elapsed": 12,
        "remaining": 48,
        "endTime": "2024-06-23T03:08:00.000Z",
        "goal": "No Goal",
        "paused": true,
        "completed": false,
        "messageTs": "messageTs",
    }
}

GET /api/stats/:slackId

Gets the stats for the user.

Example Response:

{
    "ok": true,
    "data": {
        "sessions": 0,
        "total": 0,
    }
}

GET /api/goals/:slackId

Gets the goals for the user.

Example Response:

{
    "ok": true,
    "data": [
        {
            "id": "id",
            "name": "No Goal",
            "minutes": 0
        }
    ]
}

GET /api/history/:slackId

Gets the history for the user.

Example Response:

{
    "ok": true,
    "data": [
        {
            "createdAt": "2024-06-23T05:09:04.105Z",
            "time": 60,
            "elapsed": 23,
            "goal": "No Goal",
            "ended": false,
            "work": "123"
        }
    ]
}

POST /api/start/:slackId

Starts a new session for the user.

Requires a JSON body with the following fields:

  • work: what the user is working on (string)

Example Response:

{
    "ok": true,
    "data": {
        "id": "sessionId",
        "slackId": "slackId",
        "createdAt": "createdAt",
    }
}

POST /api/pause/:slackId

Pauses or resumes the current session for the user, depending on the current state.

Requires an authorization header with the api key, as such: Authorization: Bearer <apikey>

Example Response:

{
    "ok": true,
    "data": {
        "id": "sessionId",
        "slackId": "slackId",
        "createdAt": "createdAt",
        "paused": true,
    }
}

POST /api/cancel/:slackId

Cancels the current session for the user.

Requires an authorization header with the api key, as such: Authorization Bearer <apikey>

Example Response:

{
    "ok": true,
    "data": {
        "id": "sessionId",
        "slackId": "slackId",
        "createdAt": "createdAt",
    }
}

POST /api/setGoal/:slackId

Set the goal for current session for the user

Requires an authorization header with the api key, as such: Authorization Bearer <apikey>

Example Response:

{ 
    "ok": true, 
    "data": { 
        "id": "sessionId", 
        "slackId": "slackId", 
        "createdAt": "createdAt", 
        "goal": "newGoal" 
    } 
} 

API - No Auth

GET /ping

Returns with pong. Check if the thing is alive

GET /status

Get specific details on the status of hack hour (heidi)

Example Response:

{
    "activeSessions": -1,
    "airtableConnected": false,
    "slackConnected": false,
}

GET /api/clock/:slackId

Depreciated.

Responds with unix timestamp of the expected end time of the current session for the user.

hack-hour's People

Contributors

techpixel avatar maxwofford avatar polytroper avatar 24c02 avatar 29cmb avatar polypixeldev avatar albert-du avatar averseabfun avatar datcodemania avatar dillonb07 avatar rutmanz avatar iris-therainbow avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.