GithubHelp home page GithubHelp logo

harmonydog's Introduction

Harmony Dog - Small business dog training website

Table of contents

Overview

The challenge

Develop a website for a small business based on dog training and dog walking.

  • Users should be able to:

    • Create an account
    • Login / Logout
    • See, edit, and delete their account
    • Create dog profiles for their pet(s)
    • See, edit, and delete their dog's profiles
    • Get information about the services offered
    • Enroll their dog(s) for classes, training sessions, or dog walks
    • See which classes their dog(s) are enrolled in, their progress, and completed classes/behaviors
  • Administration should be able to:

    • Login / Logout
    • See, edit, and delete client(user) accounts (only pertinent information available)
    • See, edit, and delete client dog profiles
    • See, edit, and delete classes dogs have enrolled in
    • Adjust the classes, class progress, behaviors learned for each dog
    • See, edit, and delete the services available to the clients and their dogs

Screenshots

Desktop

Mobile

Links

My process

Built with

  • JavaScript
  • Semantic HTML5 markup
  • Bootstrap5 library with some custom CSS
  • Embedded JavaScript templating (EJS)
  • NodeJS
  • Express
  • MongoDB & Mongoose
  • Passport
  • Cloudinary & Multer
  • VSCode

What I learned

Harmony Dog let me really explore and play with the Bootstrap5 library. Given the time I'd like to circle back and write some custom CSS to make the site a little more unique, but he speed at which you can get a Bootstrap site up and looking fine is amazing.

I enjoyed putting ejs thorough its paces here and got to know the templating language a little more thoroughly than on other projects.

I dipped into aggregations with MongoDB, pulling two collections together to create a temporary document. I'm seeing the benefit of a NoSQL database here and the project grows and new ideas need to be incorporated into the system architecture.

Code Snippets

JavaScript

Here's my aggregation pulling in data from the dogs collection and linking it with the appropriate user so that I can display user and pet information on an administration dashboard. Using the Atlas interface on MongoDB and looking through their extensive documentation made this a breeze.

const users = await User.aggregate([
        {
          $lookup: {
            from: 'dogs',
            localField: '_id',
            foreignField: 'owner',
            as: 'pets',
          },
        },
      ]);

Continued development

Work needs to be done to bring in the class structure to the page and enable users to sign their pets up for classes. Those classes will then be shown on the pet profile page, along with their progress through the class. Pets will have a list of behaviors shown on their profile as well.

Users will be able to access class material so that they can continue the training on their own. Material will include visual and vocal cues, perhaps bringing in video, as well as intermediary steps in the training pathway.

Useful resources

Author

harmonydog's People

Contributors

alekseisaunders avatar

Stargazers

Roman avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.