https://github.com/harshmangalam/event-blend-server
Open source meetup alternative backend api powered by Bun
https://github.com/harshmangalam/event-blend-server
authentication authorization bun hacktoberfest hacktoberfest11 hacktoberfest2024 javascript jwt meetup-api postgresql prisma typescript zod
Last synced: about 1 year ago
JSON representation
Open source meetup alternative backend api powered by Bun
- Host: GitHub
- URL: https://github.com/harshmangalam/event-blend-server
- Owner: harshmangalam
- License: mit
- Created: 2024-06-30T07:43:36.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-30T18:50:33.000Z (over 1 year ago)
- Last Synced: 2025-05-06T03:46:17.311Z (about 1 year ago)
- Topics: authentication, authorization, bun, hacktoberfest, hacktoberfest11, hacktoberfest2024, javascript, jwt, meetup-api, postgresql, prisma, typescript, zod
- Language: TypeScript
- Homepage:
- Size: 226 KB
- Stars: 4
- Watchers: 1
- Forks: 15
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Eventblend API Server
## Setup
### Install dependencies
```
bun install
```
### Add env variables
```
cp .env.example .env
```
### Prisma migrations
```
bun prisma:migrate
```
### Start server
```
bun run dev
```
**Setup your postgresql db**
### Prisma
#### Seeding
```
bun prisma:seed
```
#### Open studio
```
bun prisma:studio
```
#### Reset db
```
bun prisma:reset
```
#### Migrations
```
bun prisma:migrate
```
### Open
http://localhost:3000
Also setup eventblend frontend locally
https://github.com/harshmangalam/event-blend-frontend
## Tech stack
- Typescript
- Bun
- Hono
- Prisma
- Zod
- Postgresql
## Folder structure
- `/prisma/`
- contains prisma schema, seeds and migrations.
- `/src/config`
- contains all configurations file like constants, env config etc.. getting used throughout the application
- `/src/lib`
- contains lib initialization and utility functions.
- `/src/middleware`
- contains auth and other middlewares.
- `/src/schema`
- contains global zod schema that are reusable and getting used in more than one files.
- `/src/types`
- contains global types i.e `Variables` type for hono etc...
- `/src/feature`
- contains platform feature i.e
- auth
- category
- event
- group
- location
- network
- topic
- user
- etc...
**Please go through CONTRIBUTING.md file before start contribution and code changes**.
## Docker Support
This project includes Docker support for easy setup and deployment, using Bun runtime.
### Prerequisites
- Bun
- Docker and Docker Compose (for Docker setup)
- PostgreSQL (for local setup without Docker)
### Local Setup
1. Clone the repository:
```
git clone https://github.com/harshmangalam/eventblend-api.git
cd eventblend-api
```
2. Install dependencies:
```
bun install
```
3. Create a `.env` file from the `.env.example`:
```
cp .env.example .env
```
4. Update the `.env` file with your local PostgreSQL credentials.
5. Run Prisma migrations:
```
bunx prisma migrate deploy
```
6. Start the server:
```
bun run dev
```
7. Open http://localhost:3000 in your browser.
### Docker Setup
1. Clone the repository:
```
git clone https://github.com/harshmangalam/eventblend-api.git
cd eventblend-api
```
2. Create a `.env` file from the `.env.example`:
```
cp .env.example .env
```
3. Build and run the Docker containers:
```
docker-compose up --build
```
4. In a new terminal, run Prisma migrations:
```
docker-compose exec event-blend-server bunx prisma migrate deploy
```
5. The application will be available at `http://localhost:3000`
## Tech Stack
- TypeScript
- Bun
- Hono
- Prisma
- Zod
- PostgreSQL
## Folder Structure
- `/prisma/`: Contains Prisma schema, seeds, and migrations.
- `/src/config/`: Configuration files.
- `/src/lib/`: Library initialization and utility functions.
- `/src/middleware/`: Auth and other middlewares.
- `/src/schema/`: Global Zod schemas.
- `/src/types/`: Global types.
- `/src/feature/`: Platform features (auth, category, event, etc.).
## Docker Support
### Stopping the Docker Containers
To stop the running containers:
```
docker-compose down
```
To stop the containers and remove the volumes:
```
docker-compose down -v
```
### Accessing the Database
To access the PostgreSQL database directly:
```
docker-compose exec db psql -U postgres -d eventblend
```
### Viewing Logs
To view the logs of the event-blend-server:
```
docker-compose logs event-blend-server
```
For real-time logs:
```
docker-compose logs -f event-blend-server
```
## Contributing
Please read the CONTRIBUTING.md file before making any contributions.
## Community
Join our Discord Server: https://discord.gg/YNk8MRzb
## Frontend Repository
Set up the Eventblend frontend locally:
https://github.com/harshmangalam/event-blend-frontend