This repository contains the backend code for the Water Tracker "AQUATRACKER" application, which is designed to help users track and analyze their water consumption. The backend is built using Node.js and Express, and it provides a RESTful API for the frontend to interact with.
- User authentication
- Water consumption tracking
- Daily, weekly, and monthly statistics
- API documentation with Swagger
- Clone the repository
https://github.com/WAYLIIKE/server-watertrack-project-nodejs.git
- Install dependencies
npm install
- Create a .env file in the backend directory and add the necessary environment variables:
PORT= MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret
- Launch the application
npm start
-
POST /users/signup
- Register a new user
- Request Body:
{"email": "user@example.com", "password": "Qwerty123"}
- Responses
-
POST /users/login
- Authenticate a user and return a token
- Request Body
{"email": "user@example.com", "password": "Qwerty123"}
- Responses
-
GET /users /current
- Get current user object
- Response
-
POST/users/current/refresh
- Refresh current user tokens
- Request body
{"refreshToken": "string"}
- Response
-
PATCH/users/edit
- User edit
- Request body
{"email": "user@example.com", "name": "string", "gender": "Man", "weight": 600, "activityTime": 720, "desiredVolume": 5000}
- Response
-
POST/users/signout
- User signout
- Response
-
POST/water/add
- Water add
- Request body
{"date": 1715616395292, "amount": 350}
- Response
-
PUT/water/edit/{id}
- Water edit by id
- Request body
{"date": 1715616395292, "amount": 350}
- Response
-
DELETE/water/remove/{id}
- Water delete by id
- Response
-
GET/water/day/{date}
- Water info by day
- Response
-
Node.js: JavaScript runtime built on Chrome's V8 JavaScript engine
-
Express: Fast, unopinionated, minimalist web framework for Node.js
-
MongoDB: NoSQL database for storing user and water consumption data
-
Mongoose: Elegant MongoDB object modeling for Node.js
-
JWT: JSON Web Tokens for secure authentication
-
Cloudinary: Cloud storage for user profile images Swagger: API documentation tool
And other....
Team Lead - Valentyn Savytskyi
Developer - Artem Skyba
Developer - Valentyn Hromadskyi
Цей репозиторій містить бекенд код для додатку "AQUATRACKER", який допомагає користувачам відстежувати та аналізувати їхнє споживання води. Бекенд побудований на Node.js та Express, і надає RESTful API для взаємодії з фронтендом.
- Аутентифікація користувачів
- Відстеження споживання води
- Статистика за день, тиждень та місяць
- Документація API з використанням Swagger
- Встановлення та налаштування
- Клонуйте репозиторій
https://github.com/WAYLIIKE/server-watertrack-project-nodejs.git
- Встановіть задежності
npm install
- Створіть файл .env у директорії бекенду та додайте необхідні змінні середовища:
PORT= MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret
- Запустіть сервер:
npm start
-
POST /users/signup
- Реестрація нового користувача
- Тіло запиту:
{"email": "user@example.com", "password": "Qwerty123"}
- Відповідь
-
POST /users/login
- Аутентифікація користувача та повернення токена
- Тіло запиту
{"email": "user@example.com", "password": "Qwerty123"}
- Відповідь
-
GET /users /current
- Отримання об'єкта поточного користувача
- Відповідь
-
POST/users/current/refresh
- Оновлення токенів поточного користувача
- Тіло запиту
{"refreshToken": "string"}
- Відповідь
-
PATCH/users/edit
- Редагування користувача
- Тіло запиту
{"email": "user@example.com", "name": "string", "gender": "Man", "weight": 600, "activityTime": 720, "desiredVolume": 5000}
- Відповідь
-
POST/users/signout
- Вихід користувача
- Відповідь
-
POST/water/add
- Додавання води
- Тіло запиту
{"date": 1715616395292, "amount": 350}
- Відповідь
-
PUT/water/edit/{id}
- Редагування води за id
- Тіло запиту
{"date": 1715616395292, "amount": 350}
- Відповідь
-
DELETE/water/remove/{id}
- Видалення води за id
- Відповідь
-
GET/water/day/{date}
- Ігформація про воду за день
- Відповідь
Посилання на Swagger документацію
- Node.js: середовище виконання JavaScript на основі V8
- Express: швидкий, невибагливий веб-фреймворк для Node.js
- MongoDB: NoSQL база даних для зберігання даних користувачів і споживання води
- Mongoose: об'єктно-документний маппер для MongoDB
- JWT: JSON Web Tokens для безпечної аутентифікації
- Cloudinary: хмарне сховище для зображень профілів користувачів
- Swagger: інструмент для документування API
Team Lead - Valentyn Savytskyi
Developer - Artem Skyba
Developer - Valentyn Hromadskyi