Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yagoinacio/portfolio-server
API for efficiently managing portfolio content, facilitating dynamic updates to the frontend
https://github.com/yagoinacio/portfolio-server
echo firebase-storage mongodb portfolio testify
Last synced: 2 days ago
JSON representation
API for efficiently managing portfolio content, facilitating dynamic updates to the frontend
- Host: GitHub
- URL: https://github.com/yagoinacio/portfolio-server
- Owner: YagoInacio
- License: mit
- Created: 2023-11-29T20:59:30.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-06-09T17:10:42.000Z (5 months ago)
- Last Synced: 2024-06-21T00:05:19.518Z (5 months ago)
- Topics: echo, firebase-storage, mongodb, portfolio, testify
- Language: Go
- Homepage:
- Size: 220 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
About •
Tech Stack •
Features •
How it works •
Author •
License## 💻 Portfolio Server
This API is designed to improve the management of project and experience information for your portfolio website, ensuring a seamless rendering and effortless updating process. Additionally, it facilitates interaction with Firebase Storage, allowing you to efficiently load and display icons and images, enhancing the overall visual experience of your portfolio.
## 🛠 Tech Stack
- **[Echo](https://echo.labstack.com)**
- **[MongoDB](https://www.mongodb.com/docs/drivers/go/current/)**
- **[Firebase Storage](https://firebase.google.com/docs/storage)**
- **[Testify](https://github.com/stretchr/testify)**
- **[Viper](https://github.com/spf13/viper)**## ✨ Features
- [x] Technologies:
- [x] Create
- [x] List
- [x] Enable/Disable- [x] Experiences:
- [x] Create
- [x] List
- [x] Update- [x] Projects
- [x] Create
- [x] List
- [x] Enable/Disable
- [x] Update- [x] Images:
- [x] Get Images
- [x] Get Icons## 🚀 How it works
This instructions will allow you to run a functional version of the project on your local machine.
### 📋 Pre-requisites
Before you begin, you will need to have the following tools installed on your machine:
[Git](https://git-scm.com), [Go](https://go.dev).
In addition, it is good to have an editor to work with the code like [VSCode](https://code.visualstudio.com/)#### 🔧 Instalation
```bash
# Clone this repository
$ git clone [email protected]:yagoinacio/portfolio-server.git# Access the project folder cmd/terminal
$ cd project# install the dependencies
$ go mod tidy
```#### 🔧 Configuration
To be able to run the application you need to set up the environment variables.
For that, create the subfolder ```credentials``` on the project's root folder.
On the ```credentials``` folder, create the file ```.env```. You can follow the example bellow:
```bash
# db.env.properties:
API_PORT=9000
DATABASE_URL="mongodb+srv://[USERNAME]:[PASSWORD]@[HOST]/[DATABASE]?retryWrites=true&w=majority"
DATABASE_NAME=mongo_database# make sure to replace [USERNAME], [PASSWORD], [HOST], and [DATABASE] with actual values
```You will also need to add your firebase credentials file to the ```credentials``` folder with the name ```firebase_credentials.json```.
#### 🎲 Running the application
```bash
# Run the application in development mode
$ go run ./cmd/portfolio/main.go# The server will start at port: 9000 - go to http://localhost:9000
```You can try out the API using its swagger documentation on http://localhost:9000/swagger-ui/index.html
#### ✅ Running automated tests
```bash
# Run automated tests
$ go test ./...# The test automation will run for unit tests
```## 🦸 Author
[![Github Badge](https://img.shields.io/badge/-YagoInacio-gray?style=flat-square&labelColor=gray&logo=github&logoColor=white&link=https://github.com/yagoinacio)](https://github.com/yagoinacio)
[![Linkedin Badge](https://img.shields.io/badge/-Yago-blue?style=flat-square&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/yagoinacio/)](https://www.linkedin.com/in/yagoinacio/)
[![Gmail Badge](https://img.shields.io/badge/[email protected]?style=flat-square&logo=Gmail&logoColor=white&link=mailto:[email protected])](mailto:[email protected])## 📝 License
This project is under the license [MIT](./LICENSE).
Made with ❤️ by Yago Faran 👋🏽 [Get in touch!](https://www.linkedin.com/in/yagoinacio/)