Hi, I'm Brian Smith, a musician turned full-stack web developer, based in Nashville, Tennessee, looking for my first full-time job in the tech industry. I'm a fast learner who loves puzzles and a challenge, and I'm ready to contribute to your next project!
Framework/Database Proficiencies: Node.js/Express, Flask, React, jQuery, Bootstrap, Tailwind, Flask-SQLAlchemy, PostgreSQL, MongoDB, Mongoose.
A web app built for a local business looking to open on an
appointments-only basis in response to the Covid-19
Step one of this project is a script that populates a database with appointments based on appointment duration and the store's hours by day of the week, season, and on holidays.
Next, we have the customer site. Users make an account, log in, and make appointments to visit the store, with options that are dynamically generated based on current appointments and occupancy limitations. You can view your appointments and cancel any that you've changed your mind about. You can also update your personal info if you've gotten a new email address or telephone number, or if you'd like to change your password. A "forgot password" feature allows secure account recovery via email.
Emails are automatically sent to customers when they make an appointment or have one cancelled by an admin. Each evening, email reminders are sent to the inboxes of all the next day's customers with their appointment details. (The daily reminders are currently commented out due to the host service's usage limits.)
Finally, a special admin login gives you access to a different site, where you can check in users as they come through the doors, or view data about the current distribution of bookings. Information about user cancellations is stored in the appointment database for potential analysis at a later time.
Log in to a test user account with the email "email@example.com" and the password "password" to see the user experience, (or create your own account, as this is not connected to the real store's database), or the admin account with the email "firstname.lastname@example.org" and the password "password".
Technologies and packages: React, React Router, Node, Express, Passport, Cookie-Session, MongoDB, Mongoose, Nodemailer, Node Cron, Bootstrap.
A full-featured, web-based help desk system built with
React and Express. There is authentication in place on
both the front and back end, with different privileges
depending on your role, (user, support staff, or admin.)
Users: Submit support tickets and view your dashboard, where you can see all the tickets you have submitted. Get email notifications whenever a ticket is successfully submitted, assigned to a support member, closed, or deleted.
Support staff: View your dashboard, where you can see all the tickets assigned to you. You may also view all unclaimed tickets, sorting by department if you wish, and claim any that you would like to work on. Get email notifications whenever a ticket is assigned to you, unassigned from you, or deleted.
Admin: All the features of support staff, with an added ability to view claimed tickets, assign tickets to support staff, and search tickets by username, which will either show the submitted tickets of a user or the assigned tickets of a support staff member.
Log in to the following accounts with the password "password" to explore the site with different roles: testAdmin, testSupport, testUser.
Technologies and packages: React, React Router, Node, Express, Passport, Cookie-Session, MongoDB, Mongoose, Nodemailer, Bootstrap.
A helper app for the Sunday New York Times Spelling Bee
word is submitted, it passes through a layer of validation
that determines whether it conforms to the rules of the
game. Then HTTP requests are sent to potential entries at
merriam-webster.com and lexico.com (by Oxford), where I
employ web scraping with Cheerio to determine whether a
word is an exact match to an entry in these dictionaries,
with no spaces, hyphens, or capitalization. (First
implemented in Python using Beautiful Soup as a proof of
concept.) Invalid words are rejected, and valid words are
added to a list, with the score updated accordingly.
Clicking on a word in the list will send requests to
Merriam-Webster's and Oxford's dictionary APIs, showing
you the word's definition. Your word list and score are
kept in local storage until you start a new game.
A mock stock trader app built with Flask. Create an
account and log in to get stock quotes, buy and sell
stocks, and keep a portfolio with up-to-the-moment data.
Data is stored in a PostgreSQL database and managed with
Technologies and packages: Flask, flask-wtf/flask-wtforms, flask-sqlalchemy, flask-bcrypt, flask-login, Requests, flask-mail, Jinja2, HTML, CSS, Bootstrap, Python.
A responsive weather app built for a Mintbean CareerHack event. Uses APIs to find your location and display the local weather with a seven day forecast. Get the weather for another location using a search bar equipped with auto-complete from the Google Places API.