It's hard to answer this because there are a lot of options that can make good backends. Other than Angular we don't know a lot about your project so nothing is off the table yet.
- For backend language, Spring Boot works. You can also use Node, Python, PHP or Ruby. There are more but I think these are most popular. Node will be more familiar if you know Angular. Python is usually considered good for beginners. PHP comes with Wamp so setup is easy.
- For each language, there are also frameworks, like Spring Boot is for Java (or Kotlin). Like Django or Flask for Python, Laravel for PHP or Rails for Ruby. These provide a lot of backend-specific utilities and help structure your code.
- While Spring Boot doesn't seem like the easiest choice, it can be helpful to have a friend with experience.
- For databases: you are right, most websites need one of those. The main distinction is sql vs nosql. I personally like sql and think it's a good starting point. There are different products like MySQL and Postgres, they are fairly similar, it doesn't matter as much as with the programming language.
- REST describes how the client and the server communicate. There are alternatives, but REST is very popular, I would just stick with that.
While these are very influential choices that take quite some time to change later on, it is also useful to keep in mind that while different, all of them are valid choices that thousands of people have used successfully. So in a sense, there are no wrong choices, although some may fit your style better.
If you want to know my personal opinion, I would use Python as language, Django as framework, and Postgres as database (with REST).