Code Monkey home page Code Monkey logo

project-final-kh's Introduction

Kara Howes: THEK-FRIENDS

Every year thousands of Children start the Swiss School system. The Thek (SchulThek - Swiss German for rucksack) is an integral part of the process. And an expensive one. These bags can cost 200-300 CHF (rougly 200-250 Euros). I wanted to build a resource where people could donate their used bags and give them a new home: to reduce waste and the financial burden for many families. This project was built for the Final project of the Technigo Frontend Development Bootcamp. It was built during 4 weeks, by Kara Howes. It is a multi-page application, wherein the Frontend(FE) was built using React, Redux and styled with Styled Components. The backend (BE) was built using Node.js, Express and Mongoose. The application was deployed using Heroku, MongoDB and Netlify.

-------- FEATURES------------

MODELS:

  • Member
  • Bag
  • Inspiration

(REST-Ful) ENDPOINTS:

For members:

  • /signup - POST request to allow a user to register
  • /signin - POST request allows a member to sign in, with an access token as Header
  • /members - GET request allows access to all members. Authentication required.
  • /member/:memberId - GET request - necessary for profile page. Authentication required.

For bags:

  • /bags - GET and POST request, allows members to receive and send data. Authentication required.
  • /bag/:_id GET request - to access information on one bag
  • /deleteBag/:_id - DELETE request, autenticated user can delete a bag
  • /searchBags - a GET request, authenticated user can search the bags database using queries, to return a particular coloured-bag from a partilcular Location.
  • /bags/:memberId - GET request, a member can view the bag they have added to the system
  • /reserveBag - POST request, an aunthenticated member can reserve a bag. This is confirmed by email to the recipient

For affirmations:

  • /inspiration - GET request which returns one random affirmation.

---------THE APPROACH ------------

The idea was to create a resource whereby authenticated users could access the bags in the database, or indeed add to the bags collection. Therefore it is necessary for the User to create an account and therefore become a Thek-Friend. Depending on the users Status (donor or recipient), their profile page (and therefore what they can access) differs:

  • A donor can add a bag to the collection, view any bags they have added and view all of the bags in the collection.
  • A recipient can pick their bag from the collection and view all bags.

In addition, I wanted to build a child-appropriate affirmation generator. I hard-coded the json data, seeded the database and built a function for any user (authentication not required) to access the affirmations.

The Thek-Friends website includes and Introduction page, About section, Register/Log-in page and an Inspiration/Affirmation page. Navigation to these pages is by useNavigate from the React-Router-Dom package.

The BE of this project was built using Node.js, Express, Mongoose and a few libraries (Nodemailer, crypto) The Database was built using MongoDB. The FE was built using React, Redux and various libraries (StyledComponents, Lottie Animations, Sweetalert, Moment).

The accessibility of the website was checked using the WAVE Chrome extension, which checked the HTML of the website.

I would like to thank Amanda Tilly for allowing me too use her Hamburger/Menu reuseable component, Linnea Isebrink for introducing me to the SweetAlert library and to all of my fellow Hippos for their help, advice and support throughout the Bootcamp.

----- TECH & TOOLS -----

Tech:

JavaScript ES6 React Redux React router Node express MongoDB / Mongoose Styled components Lottie, SweetAlert, Moment, Nodemailer Crypto

Tools:

Postman VS Code GitHub MongoDB Compass Figma Slack Stack Overflow

----------DEPLOYMENT------------ BE: https://kh-thek-friends.herokuapp.com/

FE: https://thek-friends.netlify.app/

project-final-kh's People

Contributors

karahowes 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.