{"id":19935057,"url":"https://github.com/nickersoft/testai-concept","last_synced_at":"2026-04-11T22:49:47.837Z","repository":{"id":138468644,"uuid":"122296801","full_name":"Nickersoft/testai-concept","owner":"Nickersoft","description":"Dashboard concept for Test.ai","archived":false,"fork":false,"pushed_at":"2023-12-15T14:27:19.000Z","size":3135,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-12T02:10:20.720Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://test.ai","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nickersoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-21T05:33:36.000Z","updated_at":"2018-02-21T05:34:34.000Z","dependencies_parsed_at":"2023-12-15T15:43:28.525Z","dependency_job_id":null,"html_url":"https://github.com/Nickersoft/testai-concept","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickersoft%2Ftestai-concept","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickersoft%2Ftestai-concept/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickersoft%2Ftestai-concept/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nickersoft%2Ftestai-concept/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nickersoft","download_url":"https://codeload.github.com/Nickersoft/testai-concept/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241361446,"owners_count":19950381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T23:18:39.230Z","updated_at":"2026-04-11T22:49:42.809Z","avatar_url":"https://github.com/Nickersoft.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"Test.ai Dashboard Concept\n=========================\nHey there! Chances are, if you're reading this, you're a member of the [Test.ai](https://test.ai) team, seeing those are \nthe primary people this repo is meant for. If you're just another developer checking out my recent GitHub activity,\nyou can just go ahead and skip over this repo. I promise you it's nothing too exciting, just a static dashboard concept.\n\nNow if you *are* a member of the Test.ai team, then you're in the right place! You know exactly why you're here! This \nREADME isn't much, but let's dive in anyway.\n\n## Before We Begin\nYou'll notice there aren't a ton of build steps here. That's not because I thought this site didn't need them, or that \nthey shouldn't be required or whatnot, it was only due to the fact that I was trying to get this site up and running as \nfast as I could. I contemplated building this site like my last project, all in [React](https://reactjs.org/), with JSX classes for each screen element,\nall rendered on the server-side, with gzip compression on Babel-transpiled, uglified ES6 code. I personally would \nhave *loved* to do this approach, as I always try to strive for tiny, performant web apps. However, my last project took longer than I \nwould have liked as a result of taking that route, mostly because I needed to come up with the best way to structure the \napplication given what was handed to me, and making the right decision takes time. Also, between setting up Webpack,\nBabel, React, Express... well, it takes awhile.\n\nSO, how did I structure this application? Very similar to how I built my brother's website, actually \n([https://conornickerson.com](https://conornickerson.com)). This app uses the [Harp server](harpjs.com) middleware to transpile\nCoffeeScript and SASS in real-time on an Express server. I was going to go full-ES6, but seeing it's not transpiled and I'm not 100% sure  \nwhich ES6 features are currently supported by which browsers, I played it safe and wrote CoffeeScript instead. \n\nAs you can probably imagine, I used Harp on my brother's site because he kept insisting on being able to update the site himself\nand there was *no way* I was about to try educating a music student on how to compile SASS code by himself. It was tough enough just\ntrying to teach him how to write proper JSON and CSS. Anyway, in this case, I used it because it saved me from needing \nto implement a separate build system and have a ludicrous amount of dependencies.\n\nIn lieu of React this site uses [Vue](https://vuejs.org/), as it does *not* require compilation of any kind. \nWhile I have not worked with Vue extensively, in this scenario I felt it was a necessary trade-off if I still wanted to \nmaintain a component-based infrastructure. To keep things simple, this site also does not use any advanced Vue tools \nsuch as the [VueX](https://github.com/vuejs/vuex) state management library.\n\nAlso, you'll notice this repo has very few commits. It's not that I don't use Git, or only dump huge changes in my Git \nrepos, it's just that I forgot to set up Git before starting this project and by the time I finished it was too late. \nIf you need a better idea of my Git commit practices just have a look at [my other repos](https://github.com/Nickersoft).\n\nOne last thing: this site isn't responsive. For the sake of time, I didn't bother writing media queries. That said, I \nhave a fair understanding of what a mobile version of this site may look like and how to achieve it.\n\n## Directory Structure\nThis is pretty self-explanatory, but just to have a formal write-up:\n\nEverything you need is in the `src` directory.\n\n- `public` contains everything that will be accessible after the base '/' in the domain\n    - `css` contains all SASS styles\n        - `components` contains all SASS styles specifically for Vue components or other page elements\n        - `util` contains utility SASS code such as mixins, variables, and color scheming\n    - `img` contains all images, though there are so few in this repo they aren't organized into sub-directories\n- `views` contains [pug](https://pugjs.org/) templates (only one in this repo, actually)        \n\n## Developing This Site\nThis site uses [nodemon](https://github.com/remy/nodemon) to run a file-watching Node instance, such just run:\n\n```bash\n$ npm run dev \n```\n\nThe server outputs this info anyway, but just in case you don't like surprises, the server runs on port 3000 \nand can be accessed at [localhost:3000](localhost:3000).\n\n## Deploying This Site\nSeeing there's no real build step, to deploy (in this case meaning to run in just plain ol' Node), just run:\n\n```bash\n$ npm start\n```\n\nThe server port is the same.\n\n## Docker\nThe actual site is deployed via Docker, and thus contains a Dockerfile. To build the image, just run:\n\n```bash\n$ docker build -t testai .\n```\n\nAnd to run it:\n\n```bash\n$ docker run --name testai -p 3000:3000 -d testai\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickersoft%2Ftestai-concept","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickersoft%2Ftestai-concept","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickersoft%2Ftestai-concept/lists"}