Skip to content

naivecoder-irl/note-app

Repository files navigation

Note Taking App

A Full-Stack Application to validate OAuth authorization-code flow with PKCE and to manage notes.

The goal of this project is to implement an application called note-app to manage notes taking. For it, we will implement a back-end Spring Boot application called springboot-note to provice REST APIs for resource access and a font-end ReactJS application called note-react-app to provide browser access. Besides, we will use OAuth 2.0 and JWT Authentication supported by Spring Authorization Server secure both applications.

Get Started

  • Online Service

    • The users/passwords are:coder and nocoder.
  • Local Service

    • Make sure Docker is installed, then in a terminal, make sure you are inside note-app root folder. Run the following command to start docker compose containers:

      docker compose up -d

      Then access http://127.0.0.1/ in browser

    • To stop and remove docker-compose containers and network, in the terminal and inside note-app folder, run the command below

      docker compose down -v
  • CI/CD pipeline status

Features

  • Login/Logout with OAuth 2 Authorization Code Flow with PKCE
  • CRUD for note-taking
  • WYSIWYG text editor and syntax highlighter for code snippets

Roadmap

  • Local Run with JAR and NPM
  • Docker Compose
  • AWS Deployment + Jenkins CI/CD pipeline
  • Kubernetes Deployment

Development

Prerequisites

authorization-server

  • Open a terminal and navigate to note-app/springboot-note-authorization-server folder

  • Run the following Maven command to start the application

    ./mvnw package
    ./mvnw clean spring-boot:run
  • This folder also can be opened as Jetbrains IDEA project for development.

api-service

  • Open a terminal and navigate to note-app/springboot-note folder

  • Run the following Maven command to start the application

    ./mvnw package
    ./mvnw clean spring-boot:run
  • This folder also can be opened as Jetbrains IDEA project for development.

react-app

  • Open another terminal and navigate to note-app/note-react-app/ folder

  • Run the command below if you are running the application for the first time

    npm install
  • Run the npm command below to start the application

    npm start

Screenshots

  • Homepage

index

  • Note list

index

  • User Profile

index

  • Note Preview

index

  • Note Creating and Updating

index

  • Logout Confirmation

index

License

GNU General Public License v3.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published