Skip to content

Journal web app using react.js, material UI, redux toolkit. Tested with react testing library and Jest. Firebase auth (email-google-github). Deployed on Vercel. Created using Vite.js

Notifications You must be signed in to change notification settings

augusticor/journal-app-vite-material

Repository files navigation

📔 Journal App 📔 - Vite icon - React icon

Content

Description

Journal web application for writing down your thoughts or what happened during your day. Create a profile and start creating notes, the app has multiple features like:

  • Creating and editing text notes
  • Upload one or multiple images to a note
  • Showing the list of notes
  • Save your notes and open them whenever you want
  • Create account using google or github accounts
  • Deleting notes

Here is how the web app looks like :

capture


Check the deployed site at Journal App Vite Material.


Project tech stack

Journal App was made using the library Reactjs for building the user Interface and other utilities like react hooks, Redux and Redux Toolkit for the application state management and finally React Router v6 for routes manipulation.

On the other hand for media storage like the notes images, Cloudinary was the choosen solution. For database was used the Firestore Database from Firebase and also from Firebase was used Firebase Authentication for user authentication, supporting email, gmail and github authentication.

For devops was used GitHub Actions for running the app tests every time a commit was pushed to the main branch and ensure all the tests passed. Check the "yml" configuration file at journalapp.js.yml.

Finally for testing the app: React Testing Library and Jest.

How to use this project ?

You can use this project by three ways:

Development mode

  1. Create a new project on Firebase console and configure the Firestore Database to write if true (allow anyone to write) and also configure the Authentication sign-in options to "Sign-in with Google", "Sign-in with GitHub", and with "Sign-in with Email and password".
  2. Prepare your firebase "app credentials and keys" for the following step. Also create a Cloudinary account and get your "credentials" to connect the Journal App with Firebase and Cloudinary.
  3. Use the template file for environment variables in root directory .env.development.template to complete the credentials of firebase and cloudinary. Do not forget to rename it to .env.development.
  4. Open a command terminal in the project directory and run the command npm install to install the main dependencies of the project.
  5. Save all and use the npm start command in the terminal to start the project.

Testing mode

Note: If you already have created and configured the Firebase App and the Cloudinary account you can use those same credentials for the Test environment variables, or create a new Firebase App just for testing.

  1. Create a new project on Firebase console and configure the Firestore Database to write if true (allow anyone to write) and also configure the Authentication sign-in options to "Sign-in with Google", "Sign-in with GitHub", and with "Sign-in with Email and password".
  2. Prepare your firebase "app credentials and keys" for the following step. Also create a Cloudinary account and get your "credentials" to connect the Journal App with Firebase and Cloudinary.
  3. Use the template file for test environment variables in root directory .env.test.template to complete the credentials of firebase and cloudinary. Do not forget to rename it to .env.test.
  4. Open a command terminal in the project directory and run the command npm install --include=dev to install both the main dependencies and the development dependencies of the project.
  5. Save all and use the npm test command in the terminal to test the project.

Deployment

The web app is deployed using Vercel, check the deployment at Journal App Vite Material.

Dependencies

Check all the project dependencies in the package.json file

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mod, use localhost to view it.

npm test

Launches the test runner in the interactive watch mode.

About

Journal web app using react.js, material UI, redux toolkit. Tested with react testing library and Jest. Firebase auth (email-google-github). Deployed on Vercel. Created using Vite.js

Topics

Resources

Stars

Watchers

Forks

Languages