diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 4d81694..0000000 --- a/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright © 2021 Garrett Mills - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the “Software”), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 5da2f2f..09e595c 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,9 @@ -
-
-The Extollo logo -

-extollo - (v. latin) - to lift up, to elevate -

-Extollo is a free & libre application framework in TypeScript. -
-
+# `garrettmills.dev` -Built on principles of modularity, strict-typing, inversion-of-control, and developer ergonomics, Extollo enables developers to build maintainable, scalable, and expressive applications. +This is my website, hosted at https://garrettmills.dev. -Node.js provides an excellent platform for quickly getting an application up and running, but this loose minimalism can lead to larger, more unweildy code-bases as your application grows. Extollo fixes this by providing an opinionated, robust framework and first-party modules that provide, among other things: +It is implemented with my [Extollo framework](https://extollo.garrettmills.dev). -- Type-based dependency injection -- Strongly-typed ORM with an expressive query-builder and models -- Customizable session & caching interfaces -- Modular, pre-compiled, nest-able routes -- First-party, extensible command line tools -- Unit-based application structure +![](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png) -## Getting Started -Writing an application with Extollo is very straightforward if you are familiar with Node.js/TypeScript, or similar frameworks like Laravel. - -Check out the [Getting Started](https://extollo.garrettmills.dev/pages/Documentation/Getting-Started.html) page on the documentation site for more information. - -## License & Philosophy -The Extollo project is, and will always be, free & libre software. The framework itself is open-source available [here](https://code.garrettmills.dev/Extollo), and is licensed under the terms of the MIT license. See the LICENSE file for more information. - -## Contributing -Have an improvement or fix to Extollo? Contributors are always welcome. See the CONTRIBUTING.md file for next steps. +This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/). diff --git a/example.env b/example.env deleted file mode 100644 index 1b6e92a..0000000 --- a/example.env +++ /dev/null @@ -1,4 +0,0 @@ -DEBUG_MODE=true -EXTOLLO_LOGGING_LEVEL=6 -DATABASE_PASSWORD=extollo -DATABASE_HOST=db01.platform.local diff --git a/src/app/configs/database.config.ts b/src/app/configs/database.config.ts index e8873e2..5d22477 100644 --- a/src/app/configs/database.config.ts +++ b/src/app/configs/database.config.ts @@ -1,4 +1,4 @@ -import { env } from "@extollo/lib"; +import { env } from '@extollo/lib' export default { connections: { diff --git a/src/app/configs/oauth2.config.ts b/src/app/configs/oauth2.config.ts index 27ff1f9..dec97e0 100644 --- a/src/app/configs/oauth2.config.ts +++ b/src/app/configs/oauth2.config.ts @@ -1,4 +1,4 @@ -import {OAuth2Client, OAuth2Scope, env, /*uuid4*/} from '@extollo/lib' +import {OAuth2Client, OAuth2Scope, env} from '@extollo/lib' export default { secret: env('OAUTH2_SECRET'), @@ -9,16 +9,5 @@ export default { description: 'access basic information about your account', }, } as {[key: string]: OAuth2Scope}, - clients: { - // 'test-1': { - // id: 'test-1', - // display: 'Test 1', - // secret: env('TEST_CLIENT_SECRET', uuid4()), - // allowedFlows: ['code'], - // allowedScopeIds: ['user-info'], - // allowedRedirectUris: [ - // 'http://localhost:1234/callback', - // ], - // }, - } as {[key: string]: OAuth2Client}, + clients: {} as {[key: string]: OAuth2Client}, } diff --git a/src/app/configs/server.config.ts b/src/app/configs/server.config.ts index 4514cc8..14a8730 100644 --- a/src/app/configs/server.config.ts +++ b/src/app/configs/server.config.ts @@ -7,7 +7,7 @@ import { RedisCache, CacheQueue, BusConnectorConfig, QueueConfig, SyncQueue -} from "@extollo/lib" +} from '@extollo/lib' export default { debug: env('DEBUG_MODE', false), diff --git a/src/app/http/controllers/Home.controller.ts b/src/app/http/controllers/Home.controller.ts index 30355ad..3ce1e24 100644 --- a/src/app/http/controllers/Home.controller.ts +++ b/src/app/http/controllers/Home.controller.ts @@ -1,4 +1,4 @@ -import {Controller, view, Injectable, SecurityContext, Inject, Collection, Config, Routing} from '@extollo/lib' +import {Controller, view, Injectable, SecurityContext, Inject, Collection, Config, Routing, file, Application} from '@extollo/lib' import {WorkItem} from '../../models/WorkItem.model' import {FeedPost} from '../../models/FeedPost.model' @@ -75,4 +75,11 @@ export class Home extends Controller { return query.get().collect() } + + favicon() { + return file( + Application.getApplication() + .appPath('resources', 'assets', 'favicon', 'favicon.ico') + ) + } } diff --git a/src/app/http/routes/app.routes.ts b/src/app/http/routes/app.routes.ts index cdb5c67..740c8e2 100644 --- a/src/app/http/routes/app.routes.ts +++ b/src/app/http/routes/app.routes.ts @@ -36,12 +36,9 @@ Route Route.any('/go/:short') .calls(GoLinks, go => go.launch) + + Route.get('/favicon.ico') + .calls(Home, home => home.favicon) }) .pre(SessionAuthMiddleware) .pre(PageView) - -// Route.group('', () => { -// Route.get('/dash') -// .pre(AuthRequiredMiddleware) -// .calls(Home, home => home.welcome) -// }).pre(SessionAuthMiddleware) diff --git a/src/app/jobs/LogMessage.job.ts b/src/app/jobs/LogMessage.job.ts deleted file mode 100644 index 87b09cd..0000000 --- a/src/app/jobs/LogMessage.job.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {Inject, Injectable, Logging, BaseJob} from '@extollo/lib' - -@Injectable() -export default class LogMessage extends BaseJob { - @Inject() - protected readonly logging!: Logging - - async execute(): Promise { - this.logging.info('Executing LogMessage...') - await new Promise(res => { - setTimeout(() => res(), 3000) - }) - this.logging.success('The LogMessage job has executed!') - } -} diff --git a/src/app/resources/assets/cc-by-nc-sa-small.png b/src/app/resources/assets/cc-by-nc-sa-small.png new file mode 100644 index 0000000..4a00d04 Binary files /dev/null and b/src/app/resources/assets/cc-by-nc-sa-small.png differ diff --git a/src/app/resources/assets/cc-by-nc-sa.png b/src/app/resources/assets/cc-by-nc-sa.png new file mode 100644 index 0000000..4acf8c4 Binary files /dev/null and b/src/app/resources/assets/cc-by-nc-sa.png differ diff --git a/src/app/resources/assets/favicon/android-chrome-192x192.png b/src/app/resources/assets/favicon/android-chrome-192x192.png new file mode 100644 index 0000000..5c9a669 Binary files /dev/null and b/src/app/resources/assets/favicon/android-chrome-192x192.png differ diff --git a/src/app/resources/assets/favicon/android-chrome-512x512.png b/src/app/resources/assets/favicon/android-chrome-512x512.png new file mode 100644 index 0000000..5aada76 Binary files /dev/null and b/src/app/resources/assets/favicon/android-chrome-512x512.png differ diff --git a/src/app/resources/assets/favicon/apple-touch-icon.png b/src/app/resources/assets/favicon/apple-touch-icon.png new file mode 100644 index 0000000..70dd66b Binary files /dev/null and b/src/app/resources/assets/favicon/apple-touch-icon.png differ diff --git a/src/app/resources/assets/favicon/favicon-16x16.png b/src/app/resources/assets/favicon/favicon-16x16.png new file mode 100644 index 0000000..ded1689 Binary files /dev/null and b/src/app/resources/assets/favicon/favicon-16x16.png differ diff --git a/src/app/resources/assets/favicon/favicon-32x32.png b/src/app/resources/assets/favicon/favicon-32x32.png new file mode 100644 index 0000000..d636c54 Binary files /dev/null and b/src/app/resources/assets/favicon/favicon-32x32.png differ diff --git a/src/app/resources/assets/favicon/favicon.ico b/src/app/resources/assets/favicon/favicon.ico new file mode 100644 index 0000000..f1847db Binary files /dev/null and b/src/app/resources/assets/favicon/favicon.ico differ diff --git a/src/app/resources/assets/favicon/site.webmanifest b/src/app/resources/assets/favicon/site.webmanifest new file mode 100644 index 0000000..ac17b1d --- /dev/null +++ b/src/app/resources/assets/favicon/site.webmanifest @@ -0,0 +1 @@ +{"name":"Garrett Mills | Developer, Speaker, Designer","short_name":"Garrett Mills","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} diff --git a/src/app/resources/assets/img/favicon.png b/src/app/resources/assets/img/favicon.png new file mode 100644 index 0000000..3705a4c Binary files /dev/null and b/src/app/resources/assets/img/favicon.png differ diff --git a/src/app/resources/views/template_raj.pug b/src/app/resources/views/template_raj.pug index 13e1463..e92e0d3 100644 --- a/src/app/resources/views/template_raj.pug +++ b/src/app/resources/views/template_raj.pug @@ -19,15 +19,24 @@ head link(rel="alternate" href="/feed/atom.xml" title="Garrett Mills - Posts & Updates" type="application/atom+xml") link(rel="alternate" href="/feed/rss.xml" title="Garrett Mills - Posts & Updates" type="application/rss+xml") + link(rel='apple-touch-icon' sizes='180x180' href=asset('favicon/apple-touch-icon.png')) + link(rel='manifest' href=asset('favicon/site.webmanifest')) + link(rel='icon' type='image/png' sizes='32x32' href=asset('favicon/favicon-32x32.png')) + link(rel='icon' type='image/png' sizes='16x16' href=asset('favicon/favicon-16x16.png')) + link(rel='shortcut icon' href=asset('favicon/favicon.ico')) + body block content footer .ff-tag(style="margin-right: 80px") a(href="https://www.mozilla.org/en-US/firefox/browsers/" target="_blank") - img(src="/assets/ffox.png" width="75" style="margin-top: -1px") + img(src=asset('ffox.png') width="75" style="margin-top: -1px") .by-line garrettmills .copy#tagline(title="my, aren't you curious...") copyright © #{(new Date()).getFullYear()} garrett mills + .copyright + a(href='https://creativecommons.org/licenses/by-nc-sa/4.0/' target='_blank') + img(src=asset('cc-by-nc-sa-small.png') title='This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License') if false div.auth-container div.profile diff --git a/CONTRIBUTING.md b/src/app/types/.gitkeep similarity index 100% rename from CONTRIBUTING.md rename to src/app/types/.gitkeep diff --git a/src/app/types/UserLogin.ts b/src/app/types/UserLogin.ts deleted file mode 100644 index 6a69c8a..0000000 --- a/src/app/types/UserLogin.ts +++ /dev/null @@ -1,14 +0,0 @@ - -export interface UserLogin { - /** - * @minLength 1 - * @maxLength 100 - */ - username: string, - - /** - * @minLength 1 - * @maxLength 100 - */ - password: string, -}