Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/ibrahimhabibeg/stadium-go-server

The server for a stadium booking mobile app.
https://github.com/ibrahimhabibeg/stadium-go-server

authentication booking crud graphql mysql node prisma typescript

Last synced: 17 days ago
JSON representation

The server for a stadium booking mobile app.

Awesome Lists containing this project

README

        

logo

Stadium Go


Stadium Booking App

ยท Documentation ยท Report Bug ยท Request Feature

## ๐Ÿ“™ Table of Contents

- [Overview](#๐Ÿ”ญ-overview)
- [Technologies](#๐Ÿง‘โ€๐Ÿ’ป-technologies)
- [Features](#โญ-features)
- [Getting Started](#๐Ÿ-getting-started)
- [API Documentation](#๐Ÿ“•-api-documentation)
- [Contributing](#โœ-contributing)
- [Contact](#๐Ÿค-contact)
- [Acknowledgements](#๐Ÿ’Ž-acknowledgements)

## ๐Ÿ”ญ Overview

This repository contains the server-side code for a stadium booking application: Stadium Go. It provides a robust backend for managing user authentication, stadium data, bookings, and GraphQL API for seamless integration with the mobile app.

## ๐Ÿง‘โ€๐Ÿ’ป Technologies

- Node.js
- TypeScript
- MySQL
- Prisma
- Apollo Server
- JSON Web Tokens (JWT)

## โญ Features

- Authentication & Authorization: Secure user registration, login, and role-based access control.

- Stadiums Management: Search and create stadiums with comprehensive details.

- Booking System: Efficient reservation of stadiums with time-based availability checks.

- GraphQL API: Flexible and efficient data interactions for the mobile app.

- TypeScript: Enhanced code quality, maintainability, and type safety.

## ๐Ÿ Getting Started

### 1. Prerequisites

- Install Node JS on your computer Here
- Install npm

### 2. Clone the repository:

```bash
git clone https://github.com/ibrahimhabibeg/stadium-go-server
```

### 3. Install dependencies:

```bash
cd stadium-go-server
npm install
```

### 4. Set up environment variables:
- Create a .env file in the project root and configure the following variables:
```
DATABASE_URL=mysql://user:password@host:port/database
JWT_SECRET=your-secret
SALT_ROUNDS=number-of-salt-round-used-by-bcrypt
```

### 5. Run migrations:
```bash
npx prisma migrate dev
```

### 6. Start the server:
```bash
npm run dev
```

## ๐Ÿ“• API Documentation

GraphQL Playground: Access the interactive GraphQL API documentation at http://localhost:4000/.

## โœ Contributing

We welcome contributions! Please follow these guidelines:

- Fork the repository.
- Create a new branch for your changes.
- Make your changes and commit them with clear messages.
- Open a pull request.

## ๐Ÿค Contact

Ibrahim Habib - - [email protected] - - [LinkedIn](https://www.linkedin.com/in/ibrahim-habib-a2948b286/)

Project Link: [Github](https://github.com/ibrahimhabibeg/stadium-go-server)

## ๐Ÿ’Ž Acknowledgements

- https://hotpot.ai/ for Images and Splash Screen Creation