Skip to content

A book tracker web app. As a member of this open source organization and a part of the front-end team, I build React components using TypeScript, JS , CSS and Material-UI. I also assist with code review and ticket creation. See my contributions on 0.2.0 and main branches.

License

Notifications You must be signed in to change notification settings

RivaD2/book-project

 
 

Logo

Build Status 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

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 yarn install to install the dependencies
  4. Run yarn start to start the development server
  5. Open localhost:3000

Note that you'll be able to use the app without running the backend by manually editing the route (URL). However, some features (e.g. creating an account and logging in) require the backend to be running.

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:

  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

About

A book tracker web app. As a member of this open source organization and a part of the front-end team, I build React components using TypeScript, JS , CSS and Material-UI. I also assist with code review and ticket creation. See my contributions on 0.2.0 and main branches.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 76.6%
  • TypeScript 16.4%
  • CSS 4.0%
  • JavaScript 2.2%
  • HTML 0.7%
  • Dockerfile 0.1%