Skip to content

Releases: weaponsforge/my-phonebook

my-phonebook_v1.0.3

15 Mar 11:34
e85835b
Compare
Choose a tag to compare

Summary

March 15, 2023

  • Create a Firebase Auth state listener using a custom React hook, Context and Redux #76
    • Usage: const { authUser, authLoading, authError, authStatus } = useAuth()
  • Store the Firebase Auth data on the users redux store (userSlice).
    • These are available when using useAuth()
    • Optionally accessible using const { authUser, authLoading } = useSelector(state => state.users)
  • Create the ProtectedPage component wrapper (HOC) that redirects signed-out users to the /login page when trying to access a private (protected) route component, and grants access when signed-in
    • Usage: export default ProtectedPage(MyComponent)
    • Added this auth checker to the userProfile, and Dashboard page components
  • Add the "no-trailing-spaces": "error" eslint rule and lint files.

What's Changed

Full Changelog: v1.0.2...v1.0.3

my-phonebook_v1.0.2

14 Mar 04:12
f472a9b
Compare
Choose a tag to compare

Summary

March 14, 2023

  • Create a Firebase user using the Firebase web auth's createUserWithEmailAndPassword() method on the login page
  • The view user profile page
  • Authenticate users on the backend, #10
  • Send system notification emails from the backend using Gmail OAuth2, #11
  • Create the custom registration API endpoint, #12
    • This is accessible on POST http://[BASE_API_URL]/api/account/action?email=someone@gmail.com&mode=send_verification
  • Create the custom verify user email API endpoint, #13
    • This is accessible on POST http://[BASE_API_URL]/api/account/action?verifyEmail&actionCode=GJLPOCYRFJb3eV88
  • Create a custom email action handler page on /client/account
  • Deploy the (development) server to vercel on push to the dev branch.
  • Deploy the (production) server to vercel on create of new Releases from the master branch.
  • Partial API documentation, #45. The API documentation will be updated as more API routes are added to the server.
    • Running "npm run docs" under the /server directory will generate the API documentation in "/server/public/docs"
  • Create a styled HTML layout template for email notifications, #71
  • Create an API endpoint for sending the custom reset password email, #70
    • This endpoint is available on POST /api/account with mode=send_reset and email and body parameters
  • Create an API endpoint for handling setting a new password from the reset password URL link sent to user's email
    • This endpoint is available on POST /api/account with mode=resetPassword and actionCode body parameters
  • Send a welcome email message to users after a successful email verification
  • Handle the password request on the UI (from email link)
  • Refactor server functions and directory names
  • Refactor: client components, pages route, and libs
  • Send a reset password email from the recoverPassword page, #20
  • Send an email verification to user's email on sign-up. Call the custom backend user registration API mentioned on Issue #12 from the registration page UI, #16
  • Create and use custom material ui components (transparent textfield, loading button and snackbar)
  • Create a usePromise hook for managing async methods' loading status, response and errors as React states
  • Create a PromiseWrapper function for wrapping async methods to return { response, status, error } information
  • new lib useSync: we have useSyncLocalStorage(string) and and useSyncSessionStorage(), to handle client side state globally
  • Use new project and deployment tokens for the mentioned cloud services on item #82

What's Changed

Full Changelog: v1.0.1...v1.0.2

my-phonebook_v1.0.1

04 Mar 09:29
03869f6
Compare
Choose a tag to compare

Summary

March 4, 2023

  • Register page, and minor changes + refactor on login, header footer, #17
  • Forgot password page UI, #21

What's Changed

Full Changelog: v1.0.0...v1.0.1

my-phonebook_v1.0.0

03 Mar 13:52
1261503
Compare
Choose a tag to compare

Summary

March 3, 2023

Initial Release

Client app setup

  • Create a barebones NextJS in /client, #3
  • Scaffold commonly-used directories under the /client directory
  • Make NextJS's static export compatible for hosting on GH Pages
  • Add sample containers and components
  • Progress on login UI, #62

Firebase

  • Create a Firebase project for the development environment, #7
  • Integrate the development Firebase project to the client app
  • Deploy the client app to the development Firebase Hosting site on push to the dev branch
  • Create a Firebase project for the production environment, #8
  • Integrate the production Firebase project to the client app
  • Deploy the client app to this repo's GH Pages site on create of new releases

Server app setup

  • Set-up a basic express app in the /server directory, #6

  • Enforce using NodeJS v18.42.0 by default, #60
  • Trigger the lint GH actions workflow on push to any branch except master
  • Dockerize the client and server apps for localhost development mode, #49
    docker compose -f docker-compose.dev.yml build
    docker compose -f docker-compose.dev.yml up
    docker compose -f docker-compose.dev.yml down
    
  • Dockerize the client and server apps for localhost production mode, #49
    docker compose -f docker-compose.prod.yml build
    docker compose -f docker-compose.prod.yml up
    docker compose -f docker-compose.prod.yml down
    

What's Changed

New Contributors

Full Changelog: https://github.com/weaponsforge/my-phonebook/commits/v1.0.0