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

https://github.com/aquariumnext/aquariumnext

Utility first aquarium app, manage your aquariums
https://github.com/aquariumnext/aquariumnext

docker postgresql prisma-orm react-chartjs-2 react-vite shadcn-ui tailwindcss tanstack-react-query tanstack-router zustand

Last synced: about 2 months ago
JSON representation

Utility first aquarium app, manage your aquariums

Awesome Lists containing this project

README

          


logo


Aquarium management system app



contributors


last update


forks


stars


open issues


license


Documentation
·
Report Bug
·
Request Feature


# Table of Contents
- [Table of Contents](#table-of-contents)
- [About the Project](#about-the-project)
- [Tech Stack](#tech-stack)
- [Environment Variables](#environment-variables)
- [Repository url](#repository-url)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Run Locally](#run-locally)

## About the Project
**aquariumNext** is a comprehensive aquarium management web application designed to help enthusiasts keep track of all aspects of their aquatic ecosystems.


screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot

* **Aquarium Management:**
* Create and edit detailed profiles for each aquarium (dimensions, type, setup date, equipment).
* Track the history of changes made to the aquarium.
* **Water Parameter Management:**
* Record and monitor parameters such as pH, temperature, nitrates, nitrites, ammonia, hardness.
* Generate charts and analytical reports on parameter trends.
* Set alarms for notifications on abnormal values.
* **Fertilization Management:**
* Plan and record fertilizer dosages.
* Create custom fertilization profiles.
* Track fertilization history.
* **Flora and Fauna Monitoring:**
* Create detailed catalogs of fish and plants (species, origin, purchase date, health).
* Track the population of each aquarium (growth, reproduction, diseases).
* Record observations and notes on health and behavior.
* **Material Management:**
* Manage consumable materials(tests, chemicals, feeds etc.)
* Notifications for reordering materials.
* **Analytics and Statistics:**
* Graphs and reports on water parameter trends.
* Statistics on fish and plant health.
* History of performed activities.
* **Activity Management:**
* Plan and record maintenance activities (water changes, cleaning, etc.).
* Notifications and reminders for upcoming activities.
* Food administration management.

### Tech Stack

[![pnpm](https://img.shields.io/badge/pnpm-F69220?logo=pnpm&logoColor=fff)](#)
[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=fff)](#)
[![Vite](https://img.shields.io/badge/Vite-646CFF?logo=vite&logoColor=fff)](#)
[![React](https://img.shields.io/badge/React-%2320232a.svg?logo=react&logoColor=%2361DAFB)](#)
[![React Query](https://img.shields.io/badge/React%20Query-FF4154?logo=reactquery&logoColor=fff)](#)
[![shadcn/ui](https://img.shields.io/badge/shadcn%2Fui-000?logo=shadcnui&logoColor=fff)](#)
[![TailwindCSS](https://img.shields.io/badge/Tailwind%20CSS-%2338B2AC.svg?logo=tailwind-css&logoColor=white)](#)
[![Express.js](https://img.shields.io/badge/Express.js-%23404d59.svg?logo=express&logoColor=%2361DAFB)](#)
[![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=fff)](#)
[![Postgres](https://img.shields.io/badge/Postgres-%23316192.svg?logo=postgresql&logoColor=white)](#)
[![Prisma](https://img.shields.io/badge/Prisma-2D3748?logo=prisma&logoColor=white)](#)

This app is structured in a separate architecture between backend and frontend, facilitating development, maintenance, and scalability. The backend, built with Express.js, exposes api rest for managing aquarium data. Prism acts as a bridge between Express.js and the PostgreSQL database, simplifying data read and write operations. The entire backend infrastructure, including the database, is containerized using Docker, ensuring portability and ease of deployment.

The frontend, developed with React Vite, offers a dynamic and responsive user interface. TanStack Query handles API calls to the backend, optimizing data management and caching. The frontend is also containerized with Docker, ensuring consistency in the execution environment.

Communication between frontend and backend is through Nginx, which acts as a reverse proxy. Nginx routes API requests from the frontend to the backend, handles HTTP traffic, compression, and security, and can also serve static frontend files. Docker orchestrates the backend, frontend, and database containers, defining the networks and volumes needed for the application.

### Environment Variables

To run this project, you will need to add the following environment variables to your .env file

`POSTGRES_USER`
`POSTGRES_PASSWORD`
`POSTGRES_DB`
`DATABASE_URL`
`DB_PORT`
`FRONTEND_PORT`
`BACKEND_PORT`
`CLIENT_URL`
``

### Repository url
- [Frontend](https://github.com/aquariumnext/aquariumnext-client)
- [Backend](https://github.com/aquariumnext/aquariumnext-server)

## Getting Started

### Prerequisites
In order to run this project you need:
- Docker
- Docker Compose
- nvm

### Run Locally
To run the project, execute the following command:
- inside the project folder use ```source ~/.bashrc``` or ```source ~/.zshrc``` to switch to node version.
```
sudo docker-compose up -d
```
```
sudo docker-compose down -v
sudo docker-compose up -d
```

Please note that by participating in this project, you agree to abide by our [Code of Conduct](./CODE_OF_CONDUCT.md).