Files
tasknote/README.md
T

166 lines
3.6 KiB
Markdown

# TaskNote
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
![Build Status](https://github.com/ricardo-campos-org/react-typescript-todolist/actions/workflows/main.yml/badge.svg)
## 📋 Table of Contents
- [About the Project](#about-the-project)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)
## 📝 About the Project
TaskNote was created to make our lives easier. In a nutshell, you can manage your TODOs and your
Notes.
A key feature is that you can `#tag` a todo or note and search or filter later.
TODO: add GIF or screenshot of the app
## ✨ Features
- Create and manage TODO items
- Create and manage Notes
- Tag TODOs and Notes
## 🚀 Tech Stack
- **Frontend:** React, Typescript, Vite, Vitest, Code Coverage
- **Backend:** Java 17, Spring Web, GraalVM Cloud Native Image
- **Database:** PostgreSQL, Flyway
- **Other Technologies:** Docker, Docker Compose, Caddy
## 🛠 Installation
1. Clone the repo
```sh
git clone https://github.com/ricardo-campos-org/react-typescript-todolist
```
2. Install NPM packages
```sh
npm install
```
3. Start the development server
```sh
npm start
```
## 🏃‍♀️ Running locally
### Locally without Docker
**Client:**
```sh
cd client
npm install
npm start
```
**Java API:**
```sh
cd java-api
./mvnw spring-boot:run \
-Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
```
PS: You have the option to define four environment variables for the database connection. In case
you decide not to do, they'll be set to default. They are:
```
POSTGRES_HOST=localhost
POSTGRES_DB=tasknote
POSTGRES_USER=tasknoteuser
POSTGRES_PASSWORD=default
```
PS2: Java API needs a running database to work. You can leverage Docker Compose for this, running
this command:
```sh
docker-compose up --profile dev postgres -d
```
**Checking if it's running:**
- You can head to the Actuator Health page at: http://localhost:8585/actuator/health
- And you want, you can open up the Swagger UI at: http://localhost:8585/swagger-ui/index.html
### Locally with Docker Compose
**All at once:**
```sh
docker compose --profile dev up -d
```
**Cleaning up:**
```sh
docker compose --profile dev down --remove-orphans
```
## 🦾 Automation
### Client
Unit tests: Client relies on these libraries:
- React-Testing-Library
- Vitest
Here's how you can run locally:
```sh
cd client
npm run test
```
**Integration tests**
Not available.
**Code style enforcement**
Here, ESlint, Airbnb
### Java API
**Unit tests**
Here
**Integration tests**
Here
**Code style enforcement**
Google Checkstyle
## 🎮 Usage
Once you're in the home screen, you can click the button to create your first TODO item.
## 🤝 Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
### Steps to Contribute:
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feat/amazing-feature`)
3. Commit your Changes (`git commit -m 'Add some amazing feature'`)
4. Push to the Branch (`git push origin feat/amazing-feature`)
5. Open a Pull Request
## 📄 License
Distributed under GPLv3 License. See `LICENSE` for more information.
## 📞 Contact
Ricardo Campos on X - [@RicardoMpcInc](https://twitter.com/RicardoMpcInc)