Conselho: Não comece um projeto pensando na linguagem de programação
A linguagem não importa agora
A linguagem em si não faz muita diferença, todas as linguagens modernas podem atender esses requisitos tranquilamente: JS/TS (com node), PHP, Ruby, Python, Java, C#, Rust... escolha que estiver melhor familiarizado e siga em frente.
Dessa forma o problema não é a linguagem, mas sim outras coisas que você precisa se preocupar antes mesmo de escrever a primeira linha de código:
- Escopo do projeto
- Regras de negócio
- Arquitetura
Como você é iniciante, vou dar uma resumida nos pontos, mas é importante que você procure mais informações a respeito
Escopo do projeto
Junto ao solicitante, vocês precisam definir algumas coisas:
- O que é esperado, por exemplo: o que vai ter na área de cliente, na área de administração, se vai haver envios de mensagens (e-mail, SMS, whatsapp, ...). Isto tem que estar o mais claro possível
- O que NÃO é esperado, por exemplo: que o sistema irá fazer a reserva sozinho no site da booking.com, este tipo de coisa é importante para que o cliente não crie expectativas além do que foi combinado. Isso é mais importante do que o item anterior.
- Datas, em um sistema grande como esse é importante definir as data aproximadas das entregas, ou seja, até que dia para os usuários conseguirem cadastrar clientes, até que dia para cadastrar os passeios... Isso é importante para não entregar tudo de uma só vez e o cliente dizer que não é aquilo que espera, com entregas pequenas e frequentes vocês vão aproveitando o feedback e corrigindo o curso do desenvolvimento quando necessário
Regras de negócio
Com base no escopo, é necessário ter clareza das regras de negócio, por exemplo:
- No cadastro do cliente é necessário validar o CPF?
- A quantidade de datas disponíveis no agendamento será configurável?
- Quem tem acesso as configurações do sistema?
Essa etapa costuma ser bem chatinha, é uma coisa que será revista constantemente, é normal em cada entrega você descobrir novas regras de negócio que seu cliente não te apresentou antes.
Arquitetura
Em relação ao programa propriamente dito, essa é a parte mais complexa de todo o sistema.
- Como serão as camadas da aplicação
- Se serão utilizadas técnicas como Clean Architecture, Ports and Adapters, CQRS, o bom e velho MVC, tudo isso junto...
- O banco de dados que será utilizado
- Qual estratégia de filas
- Autenticação e autorização
- Caching
- Onde esse projeto será hospedado
Tudo isso que eu disse independe de linguagem de programação, na verdade você pode dividir a aplicação e partes dela serem escritas em diversas linguagens.