Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/cooper-gadd/song-board

🎶 What's everyone listening to?
https://github.com/cooper-gadd/song-board

bun docker drizzle-orm nextjs postgresql shadcn-ui tailwindcss

Last synced: about 2 months ago
JSON representation

🎶 What's everyone listening to?

Awesome Lists containing this project

README

        

# Song Board

## Table of Contents
- [About](#about)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Todo](#todo)
- [Technologies](#technologies)
- [T3 App](#t3-app)
- [Bun](#bun)
- [Postgres](#postgres)
- [Drizzle](#drizzle)
- [Next.js](#nextjs)
- [Tailwind CSS](#tailwind-css)
- [Shadcn](#shadcn)

## Overview

This is a simple web application that allows users to recommend songs to each other.

## Getting Started

### Prerequisites

- [Docker](https://www.docker.com/products/docker-desktop/)
- [Bun](https://bun.sh)

### Installation

1. Clone the repository:
```bash
git clone https://github.com/cooper-gadd/song-board.git
```

2. Change into the project directory:
```bash
cd song-board
```

3. Install dependencies:
```bash
bun install
```

4. Create a `.env` file in the root of the project following the example in `.env.example`.

5. Start the database:

Mac/Linux:
```bash
./start-database.sh
```

Windows:
1. Install WSL (Windows Subsystem for Linux) - https://learn.microsoft.com/en-us/windows/wsl/install
2. Install Docker Desktop for Windows - https://docs.docker.com/docker-for-windows/install/
3. Open WSL - `wsl`
4. Run this script:
```bash
./start-database.sh
```

6. Push the database schema:
```bash
bun run db:push
```

7. Start the development server:
```bash
bun run dev
```

## Todo

- [ ] Create schema
- [ ] Insert data
- [ ] Render data
- [ ] Add data

## Technologies

### [T3 App](https://create.t3.gg)

---

### [Bun](https://bun.sh)

#### Runtime

#### Package Manager

#### Bundler

#### Database (sqlite)

#### Test Runner

---

### [Postgres](https://www.postgresql.org)

---

### [Drizzle](https://orm.drizzle.team)

---

### [Next.js](https://nextjs.org)

Next.js is a React framework that allows for server-side rendering, static site generation, and client-side rendering. It is a great choice for building web applications that need to be fast and SEO-friendly.

#### [App Router](https://nextjs.org/docs/app)

The app router in Next.js is a file-based router. This means that each page in the app is a file in the `app` directory. The folder name is the route and the default export is the component that will be rendered. Layouts can be created by creating a file in the `layouts` directory and exporting a component that wraps the `children` prop.

#### [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations)

Server Actions are async functions that run server-side. These functions integrate with both Server and Client Components, enabling handling of form submissions and data modifications without the need for a separate API.

---

### [Tailwind CSS](https://tailwindcss.com)

---

### [Shadcn](https://ui.shadcn.com)