https://github.com/jd-apprentice/waifuland-api
❤️ Waifuland API - Get random waifus!
https://github.com/jd-apprentice/waifuland-api
cloudinary express mongodb multer nodejs typescript
Last synced: 10 months ago
JSON representation
❤️ Waifuland API - Get random waifus!
- Host: GitHub
- URL: https://github.com/jd-apprentice/waifuland-api
- Owner: jd-apprentice
- License: mit
- Created: 2022-02-28T03:13:33.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-28T04:32:09.000Z (12 months ago)
- Last Synced: 2025-03-24T07:26:34.697Z (11 months ago)
- Topics: cloudinary, express, mongodb, multer, nodejs, typescript
- Language: TypeScript
- Homepage: https://waifuland.jonathan.com.ar/api
- Size: 899 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎲 WAIFULAND-API
[](https://app.codacy.com/gh/jd-apprentice/waifuland-api/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[](#contributors-)

WaifuLand is a REST API that provides information about the anime world. It is a project that is still in development, but it is already functional.
## 🗒 About the project
- The project is a REST API which gives random waifu images, they are uploaded to cloudinary and their public url is stored in mongodb
- Learning throught documentation and breaking things
- Expect many bugs and errors in the code
- You are free to collaborate with the project or use it as you wish
## 🚧 Routes
- `GET` Grab a random image `api/images`
- `GET` Grab an array of random images `api/images?size=`
- `GET` Grab a random image `api/images?tag_id=`
## ✍️ Examples
```bash
$ curl https://waifuland.jonathan.com.ar/api/images -H "Accept: application/json"
$ curl https://waifuland.jonathan.com.ar/api/images\?size\=5\&tag_id\=1 -H "Accept: application/json"
```
## 📚 Stack
- Bunjs
- Express
- Typescript
- Multer
- Cloudinary
- Mongodb
- Mongoose
- Rollbar
- Husky
## 🏗️ Build the project locally
```
Fill the fields in the .env.example
# App port
PORT=
# Your mongodb uri
DB_HOST=
# Your secret hash for signing petitions
TOKEN=
# Your cloudinary information
CLOUD_NAME=
CLOUD_API_KEY=
CLOUD_SECRET=
CLOUDINARY_URL=
# Rollbar information
ROLLBAR_TOKEN=
ROLLBAR_ENVIRONMENT=
>> cp .env.example .env
>> bun install
>> bun run dev
```
## 🧱 Structure
- User enters the page

- Once user is logged into the page

## 📁 Folders
```
📦src
┣ 📂app
┣ 📂common
┣ 📂image
┗ 📂user
┃ ┣ 📂dto
┃ ┣ 📂interfaces
┃ ┃ ┗ 📜user-interface.ts
┃ ┣ 📂schema
┃ ┃ ┗ 📜user-schema.ts
┃ ┣ 📜user-controller.ts
┃ ┣ 📜user-middleware.ts
┃ ┣ 📜user-repository.ts
┃ ┣ 📜user-routes.ts
┃ ┗ 📜user-service.ts
```
## 📝 License
This project is under the MIT license. See the [LICENSE](./LICENSE) for more information.
## 🤝 Contribute
- For more information, check the [CONTRIBUTE](./CONTRIBUTE.md) file
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!