Book tracker web app made with Spring Boot and React (Typescript).
The image above is from our mockup designs, so this may look slightly different to the app. If major changes are made, we will upload a new image.
Prerequisites:
- JDK 11
- Node >= 10 for React
- MySQL 8.0.* or (better) Docker
- Windows or macOS: install Docker Desktop
- Linux: install Docker Engine and Docker Compose
As Docker is our recommended approach, our instructions will assume you're following this route.
First, clone the repository (you'll need to fork first and then clone your fork if you're contributing).
- Install yarn:
npm install -g yarn
- Navigate to the
frontend/
directory - Run
docker-compose up
- Open
localhost:3000
once the development server has started
- Import the
backend
directory as a Maven project into your favourite IDE (or run Maven on the terminal) - Start Docker engine (Linux) or Docker desktop (Windows or macOS)
If you're using an Apple silicon chip, you'll need to uncomment this line.
Next, follow one of the approaches below:
- Build the project in the
backend/
directory using./mvnw clean install
(Unix) ormvnw.cmd clean install
(Windows) - Start the MySQL database using
docker-compose up -d mysql phpmyadmin
- May need to add
sudo
to this command
- May need to add
- Start the application using
java -jar target/book-project-0.2.0.jar
- Start the MySQL database using
docker-compose up -d mysql phpmyadmin
- May need to add
sudo
to this command - phpmyadmin is optional
- May need to add
- Run the project from your IDE
You may find lots of errors for things like the log statements, or the entities not having constructors. You can find instructions on fixing this for IntelliJ and Eclipse in our troubleshooting wiki page. Other common errors and solutions are also on the troubleshooting page.
When running the frontend and backend, or only the backend, you can use the following test user:
- Email address:
user@user.user
- Password:
password
If you're running the backend, you will need a JWT token for subsequent requests after logging in or creating an account; see our connecting to the backend wiki page.
To access the MySQL database when docker-compose is running with the phpmyadmin container:
- Go to
http://localhost:8081/
- Log in with the details below:
- Username:
root
- Password:
rootpassword
- Username:
- Click on connect
Alternatively, you can access the database inside IntelliJ Ultimate.
If you wish to contribute (thanks!), please first see the contributing document.
If you need help with anything, we'll be happy to help you over a GitHub Q&A discussion. Alternatively, feel free to chat with us on the #book-project channel on our Slack workspace.
For more information, such as a roadmap and the project's underlying principles, see the Book Project wiki.
To see a list of the open-source software we use, refer to our Acknowledgements file