Categorygithub.com/csusmGDSC/csusmgdsc-api
module
0.0.0-20250208002407-e5b127dcee4e
Repository: https://github.com/csusmgdsc/csusmgdsc-api.git
Documentation: pkg.go.dev

# README

CSUSM GDSC API

The official API for the CSUSM Google Developer Student Club (GDSC) platform. This API handles user authentication, event management, and club-related operations.

๐Ÿš€ Features

  • Event Management System
  • User Management
  • Role-based Access Control
  • OAuth2 Authentication (Google & GitHub)
  • JWT-based Session Management

๐Ÿ› ๏ธ Tech Stack

  • Go (1.23+)
  • PostgreSQL
  • Docker
  • Echo Framework
  • JWT Authentication
  • OAuth2

๐Ÿ“‹ Prerequisites

  • Go 1.23 or higher
  • PostgreSQL
  • Docker (optional)
  • DBeaver(optional)

๐Ÿ”ง Setup

  1. Clone the repository:
git clone https://github.com/csusmGDSC/csusmgdsc-api.git
cd csusmgdsc-api
  1. Create and configure your .env file:
cp .env.example .env
  1. Install dependencies:
go mod download
  1. Run the application:
go run ./cmd

๐Ÿ“ Project Structure

csusmgdsc-api/
โ”œโ”€โ”€ cmd/                # Application entrypoint
โ”œโ”€โ”€ config/             # Configuration management
โ”œโ”€โ”€ internal/               # Internal application code
โ”‚   โ”œโ”€โ”€ auth/               # Authentication system
โ”‚   โ”œโ”€โ”€ handlers/           # Request handlers
โ”‚   โ”œโ”€โ”€ db/                 # Database operations
โ”‚   โ””โ”€โ”€ models/             # Database models
โ”œโ”€โ”€ routes/             # API route definitions
โ””โ”€โ”€ .github/workflows/  # CI/CD workflow

๐Ÿค Contributing

  1. Create your feature branch: git checkout -b my-new-feature
  2. Make changes to the code
  3. Stage changes git add .
  4. Commit your changes: git commit -m 'Add some feature'
  5. Push to the branch: git push origin my-new-feature
  6. Submit a pull request

Development Guidelines

- Follow Go best practices and style guidelines
- Write tests for new features
- Update documentation as needed
- Use meaningful commit messages

๐Ÿ”’ Environment Variables

DATABASE_URL= # PostgreSQL connection string

JWT_ACCESS_SECRET= # JWT access token secret

JWT_REFRESH_SECRET= # JWT refresh token secret

GITHUB_CLIENT_ID= # GitHub OAuth client ID

GITHUB_CLIENT_SECRET= # GitHub OAuth client secret

GOOGLE_CLIENT_ID= # Google OAuth client ID

GOOGLE_CLIENT_SECRET= # Google OAuth client secret

OAUTH_REDIRECT_URL= # OAuth callback URL

FRONTEND_ORIGIN= # Frontend application URL

๐Ÿงช Testing

Run tests: go test ./...

๐Ÿ‘ฅ Contact

If you have any questions or need help, feel free to reach out to the GDSC team:

# Packages

No description provided by the author
No description provided by the author
No description provided by the author