Skip to content

kristinetuazon/minimize

Repository files navigation

Minimize

A decluttering list-sorting application.


Minimize-jpeg 001

This application aims to help you sort through your items. Tinder-style.


Installation


OS X & Linux:

npm run start


Usage example

Minimize-jpeg 002

Are you looking to declutter your closet or the unmentionable drawer you have in your kitchen? Are you backpacking and you're not sure what to bring? Are you moving homes and you want to take a general inventory of what you are bringing?

Minimize-jpeg 004

Then this application is for you!
Meet Emily--young and career driven. She currently works at consulting and is dealing with stress often. She often finds herself using retail therapy to destress. A friend pointed out that it may be an addiction. She wants an app that could help her sort over her things and help her keep track of what is sorted and what is not.


Meet Tim--a digital nomad, and a person who travels everywhere all the time. He doesn't own much, but sometimes it is hard to know what he needs. He wants an application that will allow him to keep track of what he brought in what trip and also help him double check and sort through the things he's bringing.



Inspired by Marie Kondo's "what sparks joy" and the Minimalist lifestyle--Minimize aspires to help you sort through your things (clothes, books---anything) in three categories: yes, no and maybe.

Minimize-jpeg 003

Tech Stack


Minimize-jpeg 006


For this project, I chose to use MongoDB, Express, NextJS and Node. Due to the serious time constraints to meet the minimal viable features of this project, I've relied heavily on Material UI for UI design. It was my first time using MongoDB and NextJS, so I had to figure out to configure and learn these frameworks as I worked on this project. I personally used a non-SQL database because of the nature of my application--because information being sent and kept are soley reliant on the user (user-generated), there are no intrinsic connections with the data being collected and fetched except for the fact that a particular user is using it.


The front end client is being deployed in Vercel, creators of NextJS and was quite a natural choice when I decided to do the UI in Next. My express server is being deployed in Render.I chose to split the client and server side deployment for a future idea of having the application in a phone application with an accompanying website.

Personal Reflections


Minimize-jpeg 007


This is the first solo full-stack application I have made. Some of the things I learned was more about deployment (from npm scripts and mono vs duo repos). I've also learned more about Firebase/Firestore authentication and database and how it is built to run in the client side and not in the server side. Initially I was rerouting my authorization requests from my express server to the client which is a roundabout way of doing things. After reading some documentation and some examples, I realized that Google created firebase for client side configuration, so I left it as a frontend dependency.


Minimize-jpeg 008


The backend work was a great challenge for me. I am thankful that MongoDB schemas are much more forgiving and easier to update if needed. Currently the application holds dummy information with placeholders in its UI. Because I'm more of a visual learner, I have built the whole entire UI before actually putting in the necessary endpoints to store/retrieve data.

I also ran issues in where fetching was longer than Next wanting to render some elements. I've mitigated the problem by using local storage to my disposal for instant access to the information than waiting for the server to serve up the necessary information.


Development setup

Still under development.

[still under development]


## Release History
  • 0.0.1
    • Work in progress


## Meta

Kristine Tuazon – @kristinetuazonkristine.jane.tuazon@gmail.com

Distributed under the MIT license. See LICENSE for more information.

https://github.com/kristinetuazon

Contributing

  1. Fork it (https://github.com/kristinetuazon/minimize/fork)
  2. Create your feature branch (git checkout -b feature-###-featurename)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature-###-featurename)
  5. Create a new Pull Request