Skip to content

gabrielcoffee/goalminder

Repository files navigation

Goalminder

goalminder logo

A goal reminder web app. Set new goals, receive email reminders, and track your progress!
goalminderapp.online

About

As someone with a lot of goals, whether professional, personal, or otherwise, I sometimes find it challenging to keep track of everything. In today's world full of distractions, it's never been so easy to lose sight of what really matters. That's why I created Goalminder, to get a few emails from time to time reminding me of my plans and also helping me keep track of the progress made. To focus on the signal, not the noise.

Features

  • Set goals in different areas like Finance, Hobbies, Fitness and others.
  • Adjust the frequency of the reminders, the tone of the message etc.
  • Receive Email reminders of these goals
  • Each reminder you can report the progress you made.
  • Analyse the reports from each goal with charts.

TechStack

Contributing

This project is mainly for personal and portfolio use, but feel free to fork it or open a pull request if you find something you'd like to improve. But keep in mind if you run the project locally, you'll need to create your own Firebase project.

1. Clone the repository

git clone https://github.com/gabrielcoffee/goalminder.git
cd goalminder

2. Install dependencies

npm install

3. Set up Firebase

  1. Create a new project at console.firebase.google.com, then enable:
  2. Authentication (Email/Password or whichever provider you prefer)
  3. Firestore Database
  4. Storage (if your app uses it)

Get your Firebase config object from Project Settings > General > Web App config, then create a .env.local file at the root of your project with the following variables:

NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id

4. Run the project

npm run dev

What's next?

Now that I'm returning to this project after a few months, I'll spend some time revisiting the README and refreshing my memory on the overall structure. After that, I plan to start working on the features I haven't implemented back then, including AI-generated message and a time zone based email scheduling system. Also, if I implement more of these features, maybe a subscription plan.

What did I learn?

I ended up learning a lot of valuable technical skills through this project:

  • React: I built dynamic, reusable UI components, making the interface more interactive and responsive.
  • Next.js: I explored server-side rendering and static site generation, improving both performance and SEO.
  • Firebase: I gained hands-on experience with document databases, authentication, and image storage, learning a lot about cloud-based backend integration.
  • Tailwind CSS: I learned how to efficiently style and structure pages using utility-first CSS.
  • Figma: I improved my design workflow by creating intuitive interfaces and prototypes.

And just as importantly, I developed a few soft skills along the way:

  • Effort: Debugging and building the system took way more time than I expected when I first sketched it out.
  • Patience: Probably the most I’ve ever had to practice on a project—countless small things broke, but it was all worth it in the end.
  • Searching: Having never used React or Firebase before, I spent a lot of time reading docs, forums, and examples to figure things out.

Preview of some pages:

Home page (not logged in)

goalminder home page

User's goals

user goals

Goal Page (top)

goal information

Goal Page (bottom)

goal progress status information

License

This project is licensed under the MIT License.​

About

A goal reminder web app. Set new goals, receive email reminders and track your progress!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors