Skip to content

rafaeelnunesf/API-My-Repertory

Repository files navigation

About this Project

The idea of the App is:

"An app where you can create and manage music repertoires that you want to keep fresh in your memory".

Why?

This project came about after a problem that I as a musician had been facing for a long time: I always ended up forgetting how to play some songs after a while without practicing, so I needed something to show me when was the last time I played a certain song, so I could practice again and keep it fresh in my memory

This is an authorial project in constant development, so, I'll be happy if you could provide me any feedback about the project, code, structure or anything that you can report that could make me a better developer!

Email-me: rafaelnfsq@gmail.com

Connect with me at LinkedIn.

Functionalities

  • Sign-Up and Sign-In. I decided to make this functionality so that different users create their own lists, and only this user has access

  • Create as many repertories as you want

  • Add musics to a existing repertory

  • Mark a music as practiced

  • Delete a music from your repertory

  • Musics

    • See when was the last time this was practiced
    • See the lyrics and tabs of this song

Built With

NodeJS Express.js TypeScript Jest Docker Postgres Prisma ESLint Prettier

How to run for development

  1. Clone this repository
  2. Install all dependencies
npm i
  1. Create a PostgreSQL database with whatever name you want
  2. Configure the .env file using the .env.example file (see "Running application locally or inside docker section" for details)
  3. Run all migrations
npm run dev-migration
  1. Run the back-end in a development environment:
npm run dev

How to run tests

  1. Follow the steps in the last section
  2. Configure the .env.test file using the .env.example file (see "Running application locally or inside docker" section for details)
  3. Run all migrations
npm run dev-migrate-test
  1. Run test: (locally)
npm run test

Building and starting for production

npm run build
npm start

If you want to see in detail the whole part of how the frontend was built, take a look at this repository!