Create Angular version (#1)

Convert site to Angular; also reworked contents on solution pages
This commit is contained in:
2019-11-14 22:22:18 -06:00
committed by GitHub
parent 7dc609cf94
commit cfaf2e84f7
176 changed files with 6214 additions and 5796 deletions

View File

@@ -0,0 +1,95 @@
<app-page-title title="Information Publicizing Solutions"></app-page-title>
<article class="content auto">
<h1>Information Publicizing and Blogging</h1>
<p>
In the early days of the World Wide Web, it was known as the "information superhighway." From its inception, the
web's primary goal is information. The open nature of the Internet allows anyone, anywhere to say anything,
provided they can connect a machine to the network. In fact, there are software products to handle everything
except creating the content; all you have to bring is the ability to form a coherent thought, and type that
thought into a box. <a href="https://wordpress.org" title="WordPress">WordPress</a> is one of the most popular
<abbr title="Web Log">blog</abbr>ging platforms in use today; it allows authors to concentrate on the content of
their websites, rather than forcing authors to turn into programmers.
</p>
<h2>Custom-Built Sites</h2>
<ul>
<li>
<p>
We developed and maintained the site for <a href="http://www.emeraldmountainchristianschool.org">Emerald
Mountain Christian School</a>
<small> (<a routerLink="/solutions/emerald-mountain-christian-school" title="Emerald Mountain Christian School | Bit Badger Solutions">about</a>)</small>
for 9 years, where they had information about the type of curriculum they teach, the school's 40+-year history,
a calendar of events, and how to get more information.
</p>
</li>
<li>
<p>
We built and maintained the site for <a href="https://www.summershome.org">Photography by Michelle</a>
<small> (<a routerLink="/solutions/photography-by-michelle" title="Photography by Michelle | Bit Badger Solutions">about</a>)</small>,
which had information, prices, and samples of the photographer's work, as well as the ability for customers to
view proofs and make photo selections online.
</p>
</li>
<li>
<p>
The site for <a href="https://bayvista.org" title="Bay Vista Baptist Church">Bay Vista Baptist Church</a>
<small> (<a routerLink="/solutions/bay-vista" title="Bay Vista Baptist Church | Bit Badger Solutions">about</a>)</small>
utilizes a "static site generator," where the entire site is generated from source files, then served. It
requires no back-end database, which means that the server can send pages as fast as its clients can take them.
This site even has a generated podcast feed! Adding content to these types of sites requires a bit more
technical knowledge beyond "typing text in a box," but it is a great way to build ultra-fast, scalable web
sites.
</p>
</li>
<li>
<p>
This site is a single-page application (SPA) utilizing the <a href="https://angular.io">Angular</a> JavaScript
framework. The application pages are generated based on an internal data set, and the other pages are simple
text components. Its bundling means that the initial page is small, and after the initial load, it runs
entirely in the browser or on a phone or tablet. Sites that reference external data sets would still need to
access the Internet to retrieve data, but this is much more efficient than having to download the entire page
every single click. (It's even <a href="https://github.com/bit-badger/bitbadger.solutions">open source</a> if
you want to see how we did it.)
</p>
</li>
</ul>
<h2>WordPress Design, Customization, and Support</h2>
<ul>
<li>
<p>
We helped <a routerLink="/solutions/cassy-fiano" title="Cassy Fiano | Bit Badger Solutions">Cassy Fiano</a>
and <a routerLink="/solutions/dr-melissa-clouthier" title="Dr. Melissa Clouthier | Bit Badger Solutions">Dr.
Melissa Clouthier</a> both move their blogs from Blogspot to their own domains.
</p>
</li>
<li>
<p>
We migrated <a routerLink="/solutions/liberty-pundits" title="Liberty Pundits">Liberty Pundits</a> from a
custom blog platform to WordPress, and set up and maintained their server, which routinely cleared 100,000
hits per day in its prime.
</p>
</li>
<li>
<p>
For <a href="https://www.futilitycloset.com" title="Futility Closet">Futility Closet</a>
<small> (<a routerLink="/solutions/futility-closet" title="Futility Closet | Bit Badger Solutions">about</a>)</small>,
we moved their site from a shared hosting platform to its own <abbr title="Virtual Private Server">VPS</abbr>,
to enable it to handle its ever-increasing traffic.
</p>
</li>
<li>
<p>
<a routerLink="/solutions/tcms" title="TCMS | Bit Badger Solutions">TCMS</a> and
<a routerLink="/solutions/nsx" title="NSXapp | Bit Badger Solutions">NSXapp</a> both used WordPress as their
front end, which also provided a public web presence that the customers could update themselves.
</p>
</li>
</ul>
<p>
On <em><a href="https://blog.bitbadger.solutions" title="The Bit Badger Blog">The Bit Badger Blog</a></em> you can
browse the
<a href="https://blog.bitbadger.solutions/category/wordpress" title="WordPress | The Bit Badger Blog">WordPress</a>
category for information on plug-ins, and we have supported theme customizations for nearly all of the WordPress
sites linked on the sidebar/footer of the home page.
</p>
<p><br><a routerLink="/" title="Home">&laquo; Home</a></p>
</article>

View File

@@ -0,0 +1,13 @@
import { Component, OnInit } from '@angular/core'
@Component({
selector: 'app-information-publicizing',
templateUrl: './information-publicizing.component.html'
})
export class InformationPublicizingComponent implements OnInit {
constructor() { }
ngOnInit() { }
}

View File

@@ -0,0 +1,14 @@
<app-page-title title="Legacy Data Solutions"></app-page-title>
<article class="content auto">
<h1>Legacy Data Sharing</h1>
<p>
Our background in mainframe applications gives us a knowledgeable perspective on retrieving information from
older, &ldquo;legacy&rdquo; systems. This data can be migrated to a more modern relational or document database,
where a web application can retrieve the information; in some cases, the data can even be exposed as a web service
in place. These types of systems are often a great way for companies to expose their data to their customers,
without having to move their day-to-day system from its current environment. While we currently have no active
projects along these lines, our developers have done them in the past for other organizations; sadly, none can be
linked publicly.
</p>
<p><br><a routerLink="/" title="Home">&laquo; Home</a></p>
</article>

View File

@@ -0,0 +1,13 @@
import { Component, OnInit } from '@angular/core'
@Component({
selector: 'app-legacy-data',
templateUrl: './legacy-data.component.html'
})
export class LegacyDataComponent implements OnInit {
constructor() { }
ngOnInit() { }
}

View File

@@ -0,0 +1,45 @@
<app-page-title title="Process Automation Solutions"></app-page-title>
<article class="content auto">
<h1>Process Automation and User Engagement</h1>
<p>
Computers can be used to augment or automate nearly any process; could you think of generating bank statements,
processing mailing lists, or tracking orders without some form of automation? We develop web-based solutions to
automate <em>your</em> processes, ensuring that your business constraints are satisfied; these systems can run on
the Internet or your private network. For Internet-facing solutions, we engineer solutions that allow them to
interact with you securely, presented in an engaging manner. And, by &ldquo;engagement,&rdquo; we are not
describing intrusive page pop-ups and other <span class="strike">marketing gimmicks</span> web annoyances; we
determine an optimal user experience for <em>your</em> customers, and tailor the solution to work for both of you.
</p>
<p>Several of our solutions fit this description.</p>
<ul>
<li>
<p>
<a routerLink="/solutions/virtual-prayer-room" title="Virtual Prayer Room | Bit Badger Solutions">Virtual
Prayer Room</a> helped the prayer ministry of
<a href="http://www.hoffmantown.org" title="Hoffmantown Church in Albuquerque, NM">Hoffmantown Church</a>
enable their prayer warriors to have access to requests wherever they are, even in their inbox once a day!
</p>
</li>
<li>
<p>
<a routerLink="/solutions/tcms" title="TCMS | Bit Badger Solutions">TCMS</a> was an application that helped
organizations such as <a href="http://www.loveincabq.org">Love INC of South Albuquerque</a> connect people with
needs to people who can help fulfill those needs. TCMS sprung from the
<a href="https://nsx.archive.bitbadger.solutions" title="Not So Extreme Makeover: Community Edition (Archive)">Not
So Extreme Makeover: Community Edition</a> in Albuquerque, New Mexico during spring break 2008; we not only
developed the public presence, but a private system called
<a routerLink="/solutions/nsx" title="NSXapp | Bit Badger Solutions">NSXapp</a> that enabled the management of
the volunteers, families, and things for this massive effort.
</p>
</li>
<li>
<p>
We continue to offer <a href="https://prayer.bitbadger.solutions" title="PrayerTracker">PrayerTracker</a>
<small> (<a routerLink="/solutions/prayer-tracker" title="PrayerTracker | Bit Badger Solutions">about</a>)</small>,
a free-to-use web application that helps Sunday School classes (or other small groups) generate a prayer
request list; it provides a central place for list management and continuity.
</p>
</li>
</ul>
<p><br><a routerLink="/" title="Home">&laquo; Home</a></p>
</article>

View File

@@ -0,0 +1,13 @@
import { Component, OnInit } from '@angular/core'
@Component({
selector: 'app-process-automation',
templateUrl: './process-automation.component.html'
})
export class ProcessAutomationComponent implements OnInit {
constructor() { }
ngOnInit() { }
}

View File

@@ -0,0 +1,45 @@
<app-page-title title="Web Services and API Solutions"></app-page-title>
<article class="content auto">
<h1>Web Services and APIs</h1>
<p>
A web service is a way of using the Internet to provide or accept information that makes sense to computers; this
allows other sites or applications to consume information from, or provide information to, your service. This
enables communication between applications, without having to establish any communication channels other than the
ones that web browsers already use. It isn't the best fit for every application, but when it is useful, it is
<em>very</em> useful.
</p>
<p>
An <abbr title="Application Programming Interface">API</abbr> can be a synonym for a web service, but it can also
be a generally accessible way of providing data. For example, Twitter has a public API, which other applications
can use to display tweets on their site.
</p>
<ul>
<li>
<p>
<a routerLink="/solutions/photography-by-michelle" title="Photography by Michelle | Bit Badger Solutions">Photography
by Michelle</a> had a private web API that a desktop application utilized to create the online proof sets right
from the computer where the images resided.
</p>
</li>
<li>
<p>
We
<a href="https://blog.bitbadger.solutions/2010/4040-web-service.html" title="40/40 Web Service | The Bit Badger Blog">wrote
a service</a> for the 2010
<a href="http://erlc.com/4040/" title="40/40 Prayer Vigil | Ethics and Religious Liberty Commission of the Southern Baptist Convention">40/40
Prayer Vigil</a>, which was utilized by several sites to display the current day's (or hour's) prayer focus, and
<a href="https://blog.bitbadger.solutions/2012/4040-web-service-for-2012.html" title="40/40 Web Service for 2012 | The Bit Badger Blog">wrote
one for 2012</a> as well. <em>(As the ERLC does not host these any more, this service is no longer active.)</em>
</p>
</li>
<li>
<p>
<a href="https://prayerjournal.me">myPrayerJournal</a>
<small> (<a routerLink="/solutions/my-prayer-journal" title="myPrayerJournal | Bit Badger Solutions">about</a>)</small>
is a <abbr title="Single Page Application">SPA</abbr> which only downloads the structure of the site the first
time you go there, then utilizes a stateless API to access data from the browser.
</p>
</li>
</ul>
<p><br><a routerLink="/" title="Home">&laquo; Home</a></p>
</article>

View File

@@ -0,0 +1,13 @@
import { Component, OnInit } from '@angular/core'
@Component({
selector: 'app-web-services',
templateUrl: './web-services.component.html'
})
export class WebServicesComponent implements OnInit {
constructor() { }
ngOnInit() { }
}

View File

@@ -0,0 +1,24 @@
<app-page-title title="Why Bit Badger?"></app-page-title>
<article class="content auto">
<h1>Why &ldquo;Bit Badger&rdquo;?</h1>
<p>
A while back, our primary developer Daniel learned through genetic testing that he had one gene that was not right
(technically known as a genetic mutation). He is currently fine <em>(thank you for asking)</em>, but his co-workers
thought of another group of genetic mutants &ndash; the X-Men. They wanted to develop the mutant identity for him
in that style; since Wolverine is already taken, they wanted something similar, but based on a member of the weasel
family (for its normal private life and fierce tenacity, not its morals). They went through several different
options, but when &ldquo;Bit Badger&rdquo; was mentioned, it was the winner. The Bit Badger's mutant superpower is
the ability to shoot 1s and 0s out its nostrils!
</p>
<p>
Daniel liked this moniker, and decided to run with it. He had been growing dissatisfied with the name &ldquo;DJS
Consulting,&rdquo; as he felt that name was passive. He enjoys taking problems and finding creative solutions for
them, making our computers work for us instead of the other way around. While he can't actually breathe out 1s and
0s, they do flow from his fingers (in groups of 8, of course).
</p>
<p>
Do you have a problem that needs a solution? <a href="mailto:daniel@bitbadger.solutions">Sic the Bit Badger on
it</a>!
</p>
<p><br><a routerLink="/" title="Home">&laquo; Home</a></p>
</article>

View File

@@ -0,0 +1,13 @@
import { Component, OnInit } from '@angular/core'
@Component({
selector: 'app-why-bit-badger',
templateUrl: './why-bit-badger.component.html'
})
export class WhyBitBadgerComponent implements OnInit {
constructor() { }
ngOnInit() { }
}

View File

@@ -0,0 +1,60 @@
<app-page-title title="Welcome!"></app-page-title>
<div class="home">
<article class="content auto">
<p class="home-lead">Bit Badger Solutions develops the site you need to enable your success!</p>
<p>These solutions can take several different forms.</p>
<h2>Process Automation and User Engagement</h2>
<p>
Do you have a process that requires recording the same thing multiple times? Do you have information in different
places, but you need it all together? This solution is for you.
<a routerLink="/about/process-automation-solutions" title="Process Automation Solutions">Learn more about how
our solutions automate processes and engage users</a>.
</p>
<h2>Information Publicizing and Blogging</h2>
<p>
From its inception, the Web has been about information. Do you need to get information out about an upcoming
event? Are you wanting to start blogging, or breathe some fresh life into an existing blog? Those are but a few
of the problems that this solution solves.
<a routerLink="/about/information-publicizing-solutions" title="Information Publicizing Solutions">Find out more
about our information publicizing and blogging solutions</a> (including WordPress and statically-generated
sites).
</p>
<h2>Web Services and APIs</h2>
<p>
Do you have a need for multiple computers to talk to each other? Do you have an interesting data set that you want
to make available to the public? A web service or API may be just the solution for you.
<a routerLink="/about/web-services-solutions" title="Web Services and API Solutions">Learn about web services,
along with examples of current solutions</a>.
</p>
<h2>Legacy Data Sharing</h2>
<p>
Do you have data that's old &mdash; and by &ldquo;old,&rdquo; we aren&rsquo;t talking &ldquo;iPhone 6&rdquo; old,
we&rsquo;re talking &ldquo;this data
<a href="https://en.wikipedia.org/wiki/Age_of_candidacy#United_States" title="Age of Candidacy (United States) | Wikipedia">could
run for President</a>&rdquo; old? Just because the information is in an older &ldquo;legacy&rdquo; system
doesn&rsquo;t mean it has to stay there.
<a routerLink="/about/legacy-data" title="Legacy Data Sharing Solutions">Learn how our solutions can help get
this data where you and your customers can access it more easily</a>.
</p>
<h2>Why Web-Based?</h2>
<p>Web-based solutions have many advantages:</p>
<ul>
<li><p>They can be used just on a local, private network (an intranet) or on the public Internet.</p></li>
<li><p>They are available to any device connected to the network.</p></li>
<li><p>They require no special software; every device has a browser - which you're using to read this!)</p></li>
<li><p>They can get your most critical needs met first, then evolved and improved over time.</p></li>
</ul>
<h2>What Is a &ldquo;Bit Badger&rdquo;?</h2>
<p>
<a routerLink="/about/why-bit-badger" title="Why Bit Badger?">Read the Bit Badger&rsquo;s origin story</a>.
</p>
<h2>Solutions to Your Problems</h2>
<p>
We&rsquo;d be happy to discuss your information technology needs, and which of our solutions are right for you.
Just <a href="mailto:daniel@bitbadger.solutions">e-mail us</a> and let us know what we can do for you! You can
also <a routerLink="/solutions" title="All Solutions">browse a complete list of our current and previous
solutions</a>.
</p>
</article>
<app-sidebar></app-sidebar>
</div>

View File

@@ -0,0 +1,9 @@
@media all and (min-width: 80rem)
.home
display: flex
flex-flow: row
align-items: flex-start
justify-content: space-around
.home-lead
font-size: 1.3rem
text-align: center

View File

@@ -0,0 +1,14 @@
import { Component, OnInit } from '@angular/core'
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.sass']
})
export class HomeComponent implements OnInit {
constructor() { }
ngOnInit() { }
}