An open API service indexing awesome lists of open source software.

https://github.com/andrejkoller/notorium-api

.NET Web API for uploading, serving and discovering sheet music (PDFs) with thumbnails, favorites, search, and JWT authentication.
https://github.com/andrejkoller/notorium-api

csharp dotnet-core ef-core

Last synced: 19 days ago
JSON representation

.NET Web API for uploading, serving and discovering sheet music (PDFs) with thumbnails, favorites, search, and JWT authentication.

Awesome Lists containing this project

README

          

# notorium api

This is the backend API for managing, sharing, and discovering sheet music. Features user authentication, PDF upload & download, favorites, search, and more.

## ✨ Features

- User registration, login, and profile management
- Upload, download, and delete sheet music (PDF)
- Generate PDF thumbnails automatically
- Search, filter, and sort sheet music by genre, instrument, difficulty, and more
- Favorite/unfavorite sheet music
- Track downloads and views
- Secure endpoints with JWT authentication

## 🛠️ Technologies Used

- .NET 9 (ASP.NET Core Web API)
- Entity Framework Core
- MS SQL Server
- RESTful API
- PDF processing for thumbnails
- JWT Authentication

## 📋 Prerequisites

- .NET SDK 9
- MSSQL Server

## 📦 Installation

1. Clone the repository

```bash
git clone https://github.com/andrejkoller/NotoriumAPI.git
cd NotoriumAPI
```

2. Configure the database connection

Edit the connection string in `appsettings.json` or `appsettings.Development.json`:

```bash
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=NotoriumDb;Trusted_Connection=True;TrustServerCertificate=True;"
}
```

3. Apply database migration

Make sure the Entity Framework Core CLI is installed:

```bash
dotnet tool install --global dotnet-ef
```

Then apply the migrations:

```bash
dotnet ef database update
```

4. Run the API

```bash
dotnet run --project NotoriumAPI
```

The API will be available at `https://localhost:7189`.

## 🔗 Related

- Frontend Repository: [notorium-frontend](https://github.com/andrejkoller/notorium-frontend)