/book-project

Book platform for book lovers (web app)

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Logo

Build Status Code coverage Slack Code quality

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

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.

Running the frontend

  1. Install yarn: npm install -g yarn
  2. Navigate to the frontend/ directory
  3. Run yarn install to install the dependencies
  4. Run yarn start to start the development server
  5. Open localhost:3000

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)

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.

Access database

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

  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.

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