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

https://github.com/imbios/go-micho-twitter

Twitter-like API written in Go, using Echo framework.
https://github.com/imbios/go-micho-twitter

echo echo-framework go golang twitter-api

Last synced: about 1 year ago
JSON representation

Twitter-like API written in Go, using Echo framework.

Awesome Lists containing this project

README

          

# Twitter API with Go 👋

Twitter-like API with Go, using [Echo](https://github.com/labstack/echo) and [Go-Micro](https://github.com/go-micro/go-micro) framework.

## Features ðŸŠķ

- [x] Authentication
- [x] Sign up
- [x] Sign in
- [ ] Follow System
- [x] Follow
- [ ] Unfollow
- [x] Public Tweet
- [x] Send Tweet
- [x] Feed
- [ ] Private Message
- [ ] Send Message
- [ ] View Private Message
- [ ] User Profile
- [ ] View Profile
- [ ] Edit Profile
- [ ] Search
- [ ] Security
- [ ] JWT
- [x] Access Token
- [ ] Refresh Token
- [ ] Rate Limiting
- [x] CORS
- [ ] DevOps
- [ ] Docker
- [ ] Kubernetes
- [x] Continuous Integration
- [ ] Containerized Development
- [x] Echo Framework for API
- [x] Authentication
- [x] Middleware
- [x] Routing
- [x] Validation
- [ ] Go-Micro Framework for Microservices

## Tools ⚒ïļ

- Dev Watcher => [Air](https://github.com/cosmtrek/air)
- Linter => [GolangCI-Lint](https://github.com/golangci/golangci-lint)
- Code Formatter => [Golines](https://github.com/segmentio/golines)

## VSCode Extension ðŸ‘ū

- [Run on Save](https://marketplace.visualstudio.com/items?itemName=emeraldwalk.RunOnSave)

## Project Structure 🌊

```bash
TODO:
```

- **.vscode** => TODO:
- **configs** => TODO:
- **controllers** => TODO:
- **helpers** => TODO:
- **models** => TODO:
- **routes** => TODO:

## Get Started 👟

1. Create a MongoDB database, and name it `twitter`
2. Copy the example environment variable (`.env.example`) to `.env`

```bash
cp .env.example .env
```

3. Configure the `.env` file

4. Make sure Go (min v1.18) and [Air](https://github.com/cosmtrek/air) installed.

5. Run the Air ðŸ›Ŧ

```bash
air
```