[{"id":"5b3ac5c4-7799-4213-b8a1-6c8c1e9a82b5","title":"SeaFarer","appUrl":"https://github.com/ptallen63/seafarer","catagories":["CLI"],"path":"seafarer","status":"complete","type":"CLI","tags":["Javascript","NodeJS","Typescript"],"slug":"seafarer","dateCompleted":"2022-4-1","coverImage":"/projects/SefarerCover.png","link":"seafarer","images":["/projects/SeafarerScreenShot.png"],"content":"\n    <!-- wp:heading {\"level\":1} -->\n<h1>⛵</h1>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>🚧&nbsp;<strong>Disclaimer</strong>: This project is in development and is just a proof of concept at this point. I would love any feedback and how you wish it worked and what features to add. That being said, it is not meant for hardened production environments just yet.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>One of the main purposes of this project is to make creating simple step flows easier and faster. By using intentional abstractions, the only thing a developer has to worry about is the core logic of the flow itself. You should not have to worry about keeping up with the state of the flow all the time or rewriting advanced and previous screen logic. With&nbsp;<strong>Seafarer</strong>&nbsp;only worry about what your flow is doing. Written with modern React&nbsp;<strong>Seafarer</strong>&nbsp;provides a simple hook to use throughout your application. You can only use the core logic engine of&nbsp;<strong>Seafarer</strong>&nbsp;or add your own screen components.</p>\n<!-- /wp:paragraph -->\n    ","excerpt":"⛵ One of the main purposes of this project is to make creating simple step flows easier and faster. By using intentional abstractions, the only thing a developer has to worry about is the core logic of the flow itself."},{"id":"a3aab67d-d70e-4ab7-87d7-25493d1c4ae1","title":"StreakBit","path":"streakbit","link":"streakbit","slug":"streakbit","status":"complete","tags":["AngularJS","HTML5","Javascript","php"],"appUrl":"https://paulallen.dev/projects/streakbit","catagories":["website","development"],"type":"website","images":["/projects/streakbit1.png","/projects/streakbit2.png"],"dateCompleted":"2015-01-01","coverImage":"/projects/streakbit-cover.png","content":"StreakBit was a proof of concept habit tracking webapp. It allowed users to set daily habits, then mark when they completed them. As the user built up streaks, they were awarded more and more points. The tag line was ‘turn streaks into habits’. This project was built in 2015 when Angular 1.x was at the height of its dominance. The stack for this app was Angular 1.x on the frontend with PHP as the backend running the CodeIgniter framework and MySql as the database solution.","excerpt":"StreakBit was a proof of concept habit tracking webapp. It allowed users to set daily habits, then mark when they completed them. As the user built up streaks, they were awarded more and more points. The tag line was ‘turn streaks into habits’. This project was built in 2015 when Angular 1.x was at the height of its dominance. The stack for this app was Angular 1.x on the frontend with PHP as the backend running the CodeIgniter framework and MySql as the database solution."},{"id":"2c67421b-0f95-432b-8e0c-e0e11811b3eb","title":"Todoist Github Action","appUrl":"https://github.com/marketplace/actions/create-todoist-task","catagories":["CLI"],"path":"todoist-github-action","status":"Active","type":"CLI","tags":["CI/CD","Github Actions","NodeJS"],"slug":"todoist-github-action","dateCompleted":"2021-3-31","coverImage":"/projects/TodoistGithubActionCover.png","link":"todoist-github-action","images":["/projects/Todoist1.png","/projects/Todoist2.png"],"content":"\n    <h1>✅ </h1>\n\n    This action creates a Todoist task from a GitHub action. I originally built it when GitHub actions were newer to the scene. It was a lot of fun to build and solved a problem I was having at the time with linking my GitHub issues to Todoist.\n  ","excerpt":"This action creates a Todoist task from a GitHub action. I originally built it when GitHub actions were newer to the scene. It was a lot of fun to build and solved a problem I was having at the time with linking my GitHub issues to Todoist. "},{"id":"e6676657-bee4-4cc7-bbd1-d9a675aedba9","title":"Adevinechristmas.com","appUrl":"/projects/e6676657-bee4-4cc7-bbd1-d9a675aedba9","catagories":["Apps"],"path":"adevinechristmas","status":"Complete","type":"Website","tags":["GatsbyJS","HTML5","Javascript","NodeJS","ReactJS"],"slug":"adevinechristmas","dateCompleted":"2019-11-27","coverImage":"/projects/adc-cover.png","link":"adevinechristmas","images":["/projects/adc-1.png","/projects/adc-2.png","/projects/adc-3.png","/projects/adc-4.png"],"content":"\n  <!-- wp:heading -->\n<h2>Description</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This site was for a church Christmas eve event. It needed to go up quickly and needed to have basic functions of giving information and taking RSVP's. To get it out the door quickly, I spun up a <a href=\"https://www.gatsbyjs.org/\">GatsbyJS </a>framework that I was familiar with and used some <a href=\"https://www.styled-components.com/\">styled-components</a> from other projects. The timeline to turn around was only one week, so I had to take every advantage of reusability where I could. I also made use of some nice React libraries to give some small animations that add subtle interactions to the site to make it pop. The application was hosted through <a href=\"https://www.netlify.com/\">Netlify</a> and put behind a <a href=\"https://www.cloudflare.com/\">Cloudflare</a> CDN to give it extra performance.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2>Successes</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>The event was a big success with a lot of traffic coming to the website. It was also delivered in a short timeline still meeting all requirements.  I was really happy with how quickly I was able to get an application with the capability to do a lot up with little overhead or boilerplate. </p>\n<!-- /wp:paragraph -->\n  ","excerpt":"This site was for a church Christmas eve event. It needed to go up quickly and needed to have basic functions of giving information and taking RSVPs."},{"id":"5ab929b4-8f16-4e94-b5a8-5c68c5f2c529","title":"Flitwick JS","appUrl":"https://www.npmjs.com/package/flitwick","catagories":["Apps","CLI"],"path":"flitwickjs","status":"complete","type":"CLI","tags":["CLI","Javascript","Node"],"slug":"flitwickjs","dateCompleted":"2017-5-2","coverImage":"/projects/flitwick-cover.png","link":"flitwickjs","images":["/projects/flitwick1.png"],"content":"Flitwick is a simple CLI that I am working on to solve the problem that I seemingly get every day. The use case is I have one list of emails in a `.csv` file and I want to know if those emails exists on another list in a `.csv` file. Flitwick takes the two lists, compares them, and spits out the rest in `output.csv` file. I am currently working on getting the match list to match up the properties from the match-to list.  I also hoping to create a spertale library to use in other projects.","excerpt":"Flitwick is a simple CLI that I am working on to solve the problem that I seemingly get every day. List of Emails..."},{"id":"99cdf963-4192-4573-b501-76025d102a05","title":"Swahlee.com","appUrl":"https://www.swahlee.com","catagories":["Apps"],"path":"swahlee","status":"complete","type":"Website","tags":["GatsbyJS","Javascript","ReactJS"],"slug":"swahlee","dateCompleted":"2018-7-18","coverImage":"/projects/swahlee-cover.png","link":"swahlee","images":["/projects/swahlee1.png","/projects/swahlee2.png","/projects/swahlee3.png","/projects/swahlee4.png","/projects/swahlee5.png"],"content":"Swahlee is a clothing company in India that makes women’s dresses for export. They provide living wage jobs for young people, especially women. Swahlee needed a front facing website to tell their story and sell their dresses. They also needed a shop to handle the selling of dresses. The site is built in the JAM stack. It uses ReactJS with the GatsbyJS static site generator.","excerpt":"Swahlee is a clothing company in India that makes women’s dresses for export. They provide living wage jobs for young people, especially women. Swahlee needed a front facing website to tell their story and sell their dresses. They also needed a shop to handle the selling of dresses. The site is built in the JAM stack. It uses ReactJS with the GatsbyJS static site generator."},{"id":"972e9da4-f793-46e6-aadb-27da8273983c","title":"PME-NA 40 2018 Conference","appUrl":"https://thirsty-shirley-a20dfd.netlify.com/","catagories":["Apps"],"path":"pmena","status":"Complete","type":"Website","tags":["Javascript","NodeJS","GatsbyJS","ReactJS"],"slug":"pmena","dateCompleted":"2018-5-15","coverImage":"/projects/pmena-cover.png","link":"pmena","images":["/projects/pmena1.png","/projects/pmena2.png","/projects/pmena3.png","/projects/pmena4.png","/projects/pmena5.png"],"content":"In November of 2018 PME-NA has its 40th annual conference. The needs for this site were informational with an emphasis on registration. The design needed to be responsive as well as required implementation across the entire stack. This site has a ReactJS front end coupled with the GatsbyJS static site generator. Other than using the Semantic UI library all code is custom and built from the ground up for the client.","excerpt":"In November of 2018 PME-NA has its 40th annual conference. The needs for this site were informational with an emphasis on registration. The design needed to be responsive as well as required implementation across the entire stack. This site has a ReactJS front end coupled with the GatsbyJS static site generator. Other than using the Semantic UI library all code is custom and built from the ground up for the client."},{"id":"ff564f0d-d865-4c63-9bba-9fd32b94409a","title":"Wardrobe Library","appUrl":"#","catagories":["Apps"],"path":"wardrobe","status":"complete","type":"Website","tags":["AngularJS","PHP","Laravel","Javascript"],"slug":"wardrobe","dateCompleted":"2015-10-5","coverImage":"/projects/wardrobe-cover.png","link":"wardrobe","images":["/projects/wardrobe1.png","/projects/wardrobe2.png","/projects/wardrobe3.png","/projects/wardrobe4.png"],"content":"Wardrobe Library was a classroom library software that was built for my wife’s elementary classroom. It integrated with a scanner and kids were able to check out books, search the inventory, and see what books were at their reading levels. The teacher was able to get an overview of his or her inventory and see if students were reading at, above, or below their reading levels. The stack for this software was Angular 1.x for the frontend with a REST API built in PHP using the Laravel framework for the backend and MySql as the database solution.","excerpt":"Wardrobe Library was a classroom library software that was built for my wife’s elementary classroom. It integrated with a scanner and kids were able to check out books, search the inventory, and see what books were at their reading levels. The teacher was able to get an overview of his or her inventory and see if students were reading at, above, or below their reading levels. The stack for this software was Angular 1.x for the frontend with a REST API built in PHP using the Laravel framework for the backend and MySql as the database solution."},{"id":"bcc15e12-ee9a-448a-90ca-54970c383bf2","title":"Univ101.com","appUrl":"#","catagories":["Apps"],"path":"univ101","status":"complete","type":"Website","tags":["AngularJS","ExpressJS","MongoDB","Javascript"],"slug":"univ101","dateCompleted":"2016-8-5","coverImage":"/projects/univ101-cover.png","link":"univ101","images":["/projects/univ1011.png","/projects/univ1012.png","/projects/univ1013.png","/projects/univ1014.png","/projects/univ1015.png"],"content":"Each fall for the past 4 years I have taught a section of University 101 at the University of South Carolina. I wanted to give my students an easy place to find information about our class. I created a site from which all information was disseminated. This site was one of my first full Javascript stack projects. The frontend is Angular 1.x running on a NodeJS backend using ExpressJS with MongoDB as the database solution.'","excerpt":"Each fall for the past 4 years I have taught a section of University 101 at the University of South Carolina. I wanted to give my students an easy place to find information about our class. I created a site from which all information was disseminated. This site was one of my first full Javascript stack projects. The frontend is Angular 1.x running on a NodeJS backend using ExpressJS with MongoDB as the database solution."},{"id":"3438c587-e312-443e-829b-f443c48e846f","title":"PaulAllen.dev","appUrl":"https://paulallen.dev","catagories":["Apps"],"path":"paulallendev","status":"Active","type":"Website","tags":["NextJS","Typescript","Tailwinds","DaisyUI"],"slug":"paulallendev","dateCompleted":"","coverImage":"/projects/paulallendev-cover.png","link":"paulallendev","images":["/projects/paulallendev1.png","/projects/paulallendev2.png","/projects/paulallendev3.png","/projects/paulallendev4.png","/projects/paulallendev5.png"],"content":"PaulAllen.dev is my personal website and access point for the Internet. I could have done something simple like a wordpress site, but I wanted to showcase my abilities as well as experiment with new technologies that I want to learn. The main stack for this site is React JS served off of a Node JS  backend running the ExpressJS framework. It is constantly evolving and changing as I change.","excerpt":"PaulAllen.dev is my personal website and access point for the Internet.I could have done something simple like a wordpress site, but I wanted to showcase my abilities as well as experiment with new technologies that I want to learn.The main stack for this site is React JS served off of a Node JS  backend running the ExpressJS framework.It is constantly evolving and changing as I change."},{"id":"0a7e112f-31a0-464f-9654-b5766bc81a66","title":"GradeCalculate.com V4","appUrl":"https://gradecalculate.com","catagories":["Apps"],"path":"gradecalculate","status":"Active","type":"Website","tags":["Typescript","NextJS","Tailwinds","ReactJS"],"slug":"gradecalculate","dateCompleted":"2017-11-4","coverImage":"/projects/gradecalculate-cover.png","link":"gradecalculate","images":["/projects/gradecalculate1.png","/projects/gradecalculate2.png","/projects/gradecalculate3.png","/projects/gradecalculate4.png"],"content":"This webapp shows a grade table given a number of questions on a quiz, test, or exam. It was built in response to my wife losing her paper EZ-grader and needing a quick solution. What started out as a simple fix for my wife has blossomed into an app that is used monthly by 30,000 people around the world.  The stack is ReactJS for the frontend and a NodeJS backend running the ExpressJS framework.","excerpt":"This webapp shows a grade table given a number of questions on a quiz, test, or exam. It was built in response to my wife losing her paper EZ-grader and needing a quick solution. What started out as a simple fix for my wife has blossomed into an app that is used monthly by 30,000 people around the world.  The stack is ReactJS for the frontend and a NodeJS backend running the ExpressJS framework."},{"id":"46946188-05be-4bd7-9ba8-a7de7b4eec7d","title":"Grade Calculate Mobile App","appUrl":"https://itunes.apple.com/us/app/grade-calculate/id1121430103?mt=8","catagories":["Apps"],"path":"gradecalculatemobile","status":"Active","type":"Mobile","tags":["Ionic","iOS","Javascript"],"slug":"gradecalculatemobile","dateCompleted":"2015-5-26","coverImage":"/projects/gcmobile-cover.png","link":"gradecalculatemobile","images":["/projects/gcmobile1.png","/projects/gcmobile2.png","/projects/gcmobile3.png"],"content":"The Grade Calculate mobile app gives you the power of GradeCalculate.com on your mobile device. This was my first step into mobile development, and it has been a very successful experience. A new version of the mobile app is currently in development to bring the same look and feel of GradeCalculate 3.0 to the mobile App. This app was built with the Ionic framework which utilizes Angular 1.x. The next version will use React Native.","excerpt":"The Grade Calculate mobile app gives you the power of GradeCalculate.com on your mobile device. This was my first step into mobile development, and it has been a very successful experience. A new version of the mobile app is currently in development to bring the same look and feel of GradeCalculate 3.0 to the mobile App. This app was built with the Ionic framework which utilizes Angular 1.x. The next version will use React Native."},{"id":"d900a621-9023-4b09-8483-637ab509adff","title":"Neville JS","appUrl":"https://github.com/ptallen63/neville.js","catagories":["CLI"],"path":"neville","status":"completed","type":"CLI","tags":["CLI","email","Javascript"],"slug":"neville","dateCompleted":"2016-8-16","coverImage":"/projects/neville-cover.png","link":"neville","images":["/projects/neville1.gif","/projects/neville2.png"],"content":"Neville JS is a simple node CLI that cleans a list of emails from a CSV file. It checks to make sure there are not any blanks in the email field, no duplicates, and no emails that are in invalid formats. This is a program I open-sourced to do simple cleaning of email lists that were given to me in my job. These lists would often have several errors that added time to get my tasks done. I am in the process of developing a web client version to make it more accessible for all users.","excerpt":"Neville JS is a simple node CLI that cleans a list of emails from a CSV file. It checks to make sure there are not any blanks in the email field, no duplicates, and no emails that are in invalid formats. This is a program I open-sourced to do simple cleaning of email lists that were given to me in my job. These lists would often have several errors that added time to get my tasks done. I am in the process of developing a web client version to make it more accessible for all users."}]