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
- Host: GitHub
- URL: https://github.com/aquariumnext/aquariumnext
- Owner: aquariumnext
- License: mit
- Created: 2019-12-14T11:39:57.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-06-04T16:35:19.000Z (12 months ago)
- Last Synced: 2025-10-20T20:56:23.279Z (8 months ago)
- Topics: docker, postgresql, prisma-orm, react-chartjs-2, react-vite, shadcn-ui, tailwindcss, tanstack-react-query, tanstack-router, zustand
- Language: Shell
- Homepage:
- Size: 80.8 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 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.
* **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
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
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).