/book-project

Book platform for book lovers (web app)

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Logo

Build Status Code coverage Slack

Book tracker web app made with Spring Boot and React (Typescript).

image

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.

Setup locally

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).

Running the frontend

  1. Install yarn: npm install -g yarn
  2. Navigate to the frontend/ directory
  3. Run docker-compose up
  4. Open localhost:3000 once the development server has started

Running the backend

  1. Import the backend directory as a Maven project into your favourite IDE (or run Maven on the terminal)
  2. 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:

1. Start locally with MySQL and phpMyAdmin running in docker

  1. Build the project in the backend/ directory using ./mvnw clean install (Unix) or mvnw.cmd clean install (Windows)
  2. Start the MySQL database using docker-compose up -d mysql phpmyadmin
    • May need to add sudo to this command
  3. Start the application using java -jar target/book-project-0.2.0.jar

2. Start locally in your IDE

  1. Start the MySQL database using docker-compose up -d mysql phpmyadmin
    • May need to add sudo to this command
    • phpmyadmin is optional
  2. Run the project from your IDE

Fixing Lombok errors

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.

Test user

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.

Access database

To access the MySQL database when docker-compose is running with the phpmyadmin container:

  1. Go to http://localhost:8081/
  2. Log in with the details below:
    • Username: root
    • Password: rootpassword
  3. Click on connect

Alternatively, you can access the database inside IntelliJ Ultimate.

Contributing

If you wish to contribute (thanks!), please first see the contributing document.

Help

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.

Further information

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