diff --git a/.github/workflows/main_mental-health-app-api.yml b/.github/workflows/main_mental-health-app-api.yml
deleted file mode 100644
index 229eb695..00000000
--- a/.github/workflows/main_mental-health-app-api.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# name: Deploy Backend Container
-
-on:
- push:
- branches:
- - main
-
-jobs:
- build:
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: ./server
-
- steps:
- - name: Checkout the Git Repository
- uses: actions/checkout@v4
-
- - name: Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: 3.11.9
-
- - name: Install Poetry
- run: |
- curl -sSL https://install.python-poetry.org | python3 -
-
- - name: Configure Poetry
- run: |
- echo "$HOME/.local/bin" >> $GITHUB_PATH
- poetry config virtualenvs.create false
-
- - name: Install dependencies with Poetry
- run: |
- poetry install
-
-# - name: Log in to Azure CLI
-# uses: azure/login@v2
-# with:
-# creds: ${{ secrets.AZURE_CREDENTIALS }}
-# # Ensure AZURE_CREDENTIALS is set in your GitHub Secrets
-
-# - name: Build and Push Docker image
-# run: |
-# docker build --pull --rm -t mental-health-app:latest .
-# docker tag mental-health-app:latest dgmlgmckl6olsb4registry.azurecr.io/mental-health-app:1.0.0
-# echo ${{ secrets.REGISTRY_PASSWORD }} | docker login dgmlgmckl6olsb4registry.azurecr.io -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin
-# docker push dgmlgmckl6olsb4registry.azurecr.io/mental-health-app:1.0.0
-# # Use REGISTRY_USERNAME and REGISTRY_PASSWORD secrets for Docker registry credentials
-
-# - name: Deploy to Azure Container Apps
-# run: |
-# az account set --subscription ${{ secrets.SUBSCRIPTION_ID }}
-# az extension add --name containerapp --upgrade
-# az containerapp env create --name mental-health-app-ctr-env-2 --resource-group mongo-devguide-rg --location "eastus"
-# az containerapp up --name mental-health-app-ctr --image dgmlgmckl6olsb4registry.azurecr.io/mental-health-app:1.0.0 --resource-group mongo-devguide-rg --environment mental-health-app-ctr-env-2 --ingress external
-# # Use SUBSCRIPTION_ID secret for Azure subscription ID
diff --git a/.github/workflows/main_mental-health-app-web.yml b/.github/workflows/main_mental-health-app-web.yml
deleted file mode 100644
index 073169ab..00000000
--- a/.github/workflows/main_mental-health-app-web.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-name: Build and deploy Node.js app to Azure Web App - mental-health-app-web
-
-# Run the workflow on pushes to main branch
-on:
- push:
- branches:
- - main
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: ubuntu-latest
- environment:
- name: 'production'
- defaults:
- run:
- working-directory: ./client/
-
- steps:
- - name: Checkout Git repository
- uses: actions/checkout@v4
-
- - name: Set up Node.js version
- uses: actions/setup-node@v4
- with:
- node-version: '20.x'
-
- - name: Install dependencies
- run: npm install
-
- - name: Build distribution files
- run: npm run build
- env:
- VITE_AXIOS_BASE_URL: ${{ vars.VITE_AXIOS_BASE_URL }}
-
- - name: Upload artifact for deploment job
- uses: actions/upload-artifact@v4
- with:
- name: node-app
- path: ./client/dist/
-
- deploy:
- runs-on: ubuntu-latest
- needs: build
- environment:
- name: 'production'
- url: ${{ vars.WEB_APP_URL }}
-
- steps:
- - name: Download artifact from build job
- uses: actions/download-artifact@v4
- with:
- name: node-app
-
- - name: 'Deploy to Azure Web App'
- id: deploy-to-webapp
- uses: azure/webapps-deploy@v2
- with:
- app-name: mental-health-app-web
- slot-name: 'Production'
- publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
- package: .
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 7aa94dd9..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2024 DHRUMIL PATEL
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/client/index.html b/client/index.html
index 264aba92..d3082522 100644
--- a/client/index.html
+++ b/client/index.html
@@ -9,7 +9,7 @@
name="description"
content="This AI-Driven Mental Health Companion app provides mental health support through conversational AI, offering personalized advice, mood tracking, and mental health resources based on user inputs and interaction history. "
/>
-
Earlent - Mental Health Companion
+ Mental Health Companion
diff --git a/client/package.json b/client/package.json
index 6d84a223..750fec1b 100644
--- a/client/package.json
+++ b/client/package.json
@@ -1,7 +1,7 @@
{
"name": "mental-health-app-client",
"private": true,
- "version": "1.1.2",
+ "version": "0.1.0",
"type": "module",
"scripts": {
"dev": "vite --port 3000 ",
diff --git a/client/src/Components/authComponent.jsx b/client/src/Components/authComponent.jsx
index 733c9cf7..317587a7 100644
--- a/client/src/Components/authComponent.jsx
+++ b/client/src/Components/authComponent.jsx
@@ -1,6 +1,5 @@
import React, { useState, useContext } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import { useNavigate } from 'react-router-dom';
import { UserContext } from './userContext';
import { Link } from 'react-router-dom';
@@ -106,7 +105,7 @@ function AuthComponent() {
e.preventDefault();
setLoading(true);
try {
- const response = await apiServerAxios.post('/api/user/login', { username, password });
+ const response = await axios.post('/api/user/login', { username, password });
if (response && response.data) {
const userId = response.data.userId;
localStorage.setItem('token', response.data.access_token); // Ensure this is correctly saving the token
@@ -134,7 +133,7 @@ function AuthComponent() {
e.preventDefault();
setLoading(true);
try {
- const response = await apiServerAxios.post('/api/user/signup', {
+ const response = await axios.post('/api/user/signup', {
username,
email,
password,
@@ -172,7 +171,7 @@ function AuthComponent() {
e.preventDefault();
setLoading(true);
try {
- const response = await apiServerAxios.post('/api/user/anonymous_signin');
+ const response = await axios.post('/api/user/anonymous_signin');
if (response && response.data) {
const userId = null;
localStorage.setItem('token', response.data.access_token); // Ensure this is correctly saving the token
diff --git a/client/src/Components/chatComponent.jsx b/client/src/Components/chatComponent.jsx
index 580f0bb9..707ad669 100644
--- a/client/src/Components/chatComponent.jsx
+++ b/client/src/Components/chatComponent.jsx
@@ -1,7 +1,6 @@
import React, { useState, useEffect, useContext, useCallback, useRef } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
-import { InputAdornment, IconButton, Box, Card, CardContent, Typography, TextField, Button, List, ListItem, ListItemAvatar, ListItemText, CircularProgress, Snackbar, Divider, Avatar, Tooltip } from '@mui/material';
+import { InputAdornment,Switch, IconButton, Box, Card, CardContent, Typography, TextField, Button, List, ListItem, ListItemAvatar, ListItemText, CircularProgress, Snackbar, Divider, Avatar, Tooltip } from '@mui/material';
import MuiAlert from '@mui/material/Alert';
import SendIcon from '@mui/icons-material/Send';
import MicIcon from '@mui/icons-material/Mic';
@@ -49,7 +48,7 @@ const ChatComponent = () => {
event.preventDefault(); // Prevents the IconButton from triggering form submissions if used in forms
setVoiceEnabled(!voiceEnabled);
};
-
+
const speak = (text) => {
if (!voiceEnabled || text === currentPlayingMessage) {
@@ -79,7 +78,7 @@ const ChatComponent = () => {
synth.speak(utterance);
};
- if (synth.getVoices().length === 0) {
+ if (synth.getVoices().length === 0){
synth.onvoiceschanged = setVoiceAndSpeak;
} else {
setVoiceAndSpeak();
@@ -92,13 +91,15 @@ const ChatComponent = () => {
setIsLoading(true);
setIsFetchingMessage(true);
try {
- const response = await apiServerAxios.post(`/api/ai/mental_health/welcome/${userId}`, {
+ const response = await fetch(`/api/ai/mental_health/welcome/${userId}`, {
+ method: 'POST',
headers: {
- "Content-Type": "application/json"
+ 'Content-Type': 'application/json'
}
});
- if (response && response.data) {
- const data = response.data
+ const data = await response.json();
+ console.log(data);
+ if (response.ok) {
setWelcomeMessage(data.message);
if (voiceEnabled && data.message) { // Ensure voice is enabled and the message is not empty
speak(data.message);
@@ -133,10 +134,13 @@ const ChatComponent = () => {
if (chatId === null) return;
setIsLoading(true);
try {
- const response = await apiServerAxios.patch(`/api/ai/mental_health/finalize/${userId}/${chatId}`, {
+ const response = await fetch(`/api/ai/mental_health/finalize/${userId}/${chatId}`, {
+ method: 'POST',
headers: { 'Content-Type': 'application/json' }
});
- if (response) {
+
+ const data = await response.json();
+ if (response.ok) {
setSnackbarMessage('Chat finalized successfully');
setSnackbarSeverity('success');
// Reset chat state to start a new chat
@@ -165,19 +169,19 @@ const ChatComponent = () => {
try {
- const body = {
+ const body = JSON.stringify({
prompt: input,
turn_id: turnId
- };
- const response = await apiServerAxios.post(`/api/ai/mental_health/${userId}/${chatId}`, {
- headers: {
- "Content-Type": "application/json"
- },
- ...body
+ });
+ const response = await fetch(`/api/ai/mental_health/${userId}/${chatId}`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: body
});
- const data = response.data;
- if (response && data) {
+ const data = await response.json();
+ console.log(data);
+ if (response.ok) {
setMessages(prev => [...prev, { message: input, sender: 'user' }, { message: data, sender: 'agent' }]);
// Speak the agent's message immediately after it's received and processed
if (voiceEnabled && data) { // Ensure voice is enabled and the message is not empty
@@ -277,11 +281,11 @@ const sendAudioToServer = (audioBlob) => {
formData.append('audio', audioBlob);
setIsLoading(true);
- apiServerAxios.post('/api/ai/mental_health/voice-to-text', formData, {
- headers: {
- 'Content-Type': 'multipart/form-data'
- }
- })
+ axios.post('/api/ai/mental_health/voice-to-text', formData, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
.then(response => {
const { message } = response.data;
setInput(message);
diff --git a/client/src/Components/chatInterface.jsx b/client/src/Components/chatInterface.jsx
index fc458e94..325c10d0 100644
--- a/client/src/Components/chatInterface.jsx
+++ b/client/src/Components/chatInterface.jsx
@@ -1,7 +1,6 @@
import React, { useState, useEffect, useContext,useCallback, useRef } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
-import { InputAdornment,IconButton,Box, Card, CardContent, Typography, TextField, Button, List, ListItem,ListItemAvatar, ListItemText, CircularProgress, Snackbar, Divider, Avatar, Tooltip } from '@mui/material';
+import { InputAdornment,IconButton,Box,Switch, Card, CardContent, Typography, TextField, Button, List, ListItem,ListItemAvatar, ListItemText, CircularProgress, Snackbar, Divider, Avatar, Tooltip } from '@mui/material';
import MuiAlert from '@mui/material/Alert';
import SendIcon from '@mui/icons-material/Send';
import MicIcon from '@mui/icons-material/Mic';
@@ -227,11 +226,10 @@ const sendAudioToServer = (audioBlob) => {
formData.append('audio', audioBlob);
setIsLoading(true);
- apiServerAxios.post('/api/ai/mental_health/voice-to-text', formData, {
- headers: {
- 'Content-Type': 'multipart/form-data'
- }
- })
+ axios.post('/api/ai/mental_health/voice-to-text', formData, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
})
.then(response => {
const { message } = response.data;
diff --git a/client/src/Components/chatLogManager.jsx b/client/src/Components/chatLogManager.jsx
index 95cd15bf..3cb9da32 100644
--- a/client/src/Components/chatLogManager.jsx
+++ b/client/src/Components/chatLogManager.jsx
@@ -1,6 +1,5 @@
import React, { useState } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import {
Button, Snackbar, Alert, Tooltip, Paper, Typography, CircularProgress, TextField,
Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle
@@ -59,7 +58,7 @@ function ChatLogManager() {
const endpoint = range ? '/api/user/download_chat_logs/range' : '/api/user/download_chat_logs';
const params = range ? { params: { start_date: startDate, end_date: endDate } } : {};
- const response = await apiServerAxios.get(endpoint, {
+ const response = await axios.get(endpoint, {
...params,
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
@@ -92,7 +91,7 @@ function ChatLogManager() {
const endpoint = dialogRange ? '/api/user/delete_chat_logs/range' : '/api/user/delete_chat_logs';
const params = dialogRange ? { params: { start_date: startDate, end_date: endDate } } : {};
- const response = await apiServerAxios.delete(endpoint, {
+ const response = await axios.delete(endpoint, {
...params,
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
diff --git a/client/src/Components/checkInForm.jsx b/client/src/Components/checkInForm.jsx
index e56513f3..0cf582b9 100644
--- a/client/src/Components/checkInForm.jsx
+++ b/client/src/Components/checkInForm.jsx
@@ -1,6 +1,5 @@
import React, { useState, useEffect } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import PropTypes from 'prop-types';
import { useParams } from 'react-router-dom';
import {
@@ -35,7 +34,7 @@ function CheckInForm({ userId, update }) {
if (update && checkInId) {
// Fetch existing check-in data
setLoading(true);
- apiServerAxios.get(`/api/check-in/${checkInId}`,{
+ axios.get(`/api/check-in/${checkInId}`,{
headers: {
'Authorization': `Bearer ${token}` // Ensure the Authorization header is set
}
@@ -79,7 +78,7 @@ function CheckInForm({ userId, update }) {
const data = { user_id: userId, check_in_time: checkInTime, frequency, notify };
console.log('Submitting:', data);
try {
- const response = await apiServerAxios[method](url, data, config);
+ const response = await axios[method](url, data, config);
console.log('Success:', response.data.message);
setSnackbar({ open: true, message: response.data.message, severity: 'success' });
// Optionally reset form or handle next steps
diff --git a/client/src/Components/checkInsList.jsx b/client/src/Components/checkInsList.jsx
index a26da391..78353985 100644
--- a/client/src/Components/checkInsList.jsx
+++ b/client/src/Components/checkInsList.jsx
@@ -1,6 +1,5 @@
import React, { useState, useEffect} from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import { useParams, useNavigate } from 'react-router-dom';
import {
List, ListItemText, Typography, Card, Avatar,
@@ -64,7 +63,7 @@ function CheckInsList() {
setLoading(true);
try {
- const response = await apiServerAxios.get(`/api/check-in/all?user_id=${userId}`, {
+ const response = await axios.get(`/api/check-in/all?user_id=${userId}`, {
headers: {
'Authorization': `Bearer ${token}` // Ensure the Authorization header is set
}
@@ -110,7 +109,7 @@ function CheckInsList() {
const handleDeleteCheckIn = async () => {
if (selectedCheckIn) {
try {
- await apiServerAxios.delete(`/api/check-in/${selectedCheckIn._id}`,{
+ await axios.delete(`/api/check-in/${selectedCheckIn._id}`,{
headers: {
'Authorization': `Bearer ${token}` // Ensure the Authorization header is set
}
diff --git a/client/src/Components/moodLogging.jsx b/client/src/Components/moodLogging.jsx
index 8091572c..d63df073 100644
--- a/client/src/Components/moodLogging.jsx
+++ b/client/src/Components/moodLogging.jsx
@@ -1,6 +1,5 @@
import React, { useState } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import { Button } from '@mui/material';
import MoodIcon from '@mui/icons-material/Mood';
import SendIcon from '@mui/icons-material/Send';
@@ -22,7 +21,7 @@ function MoodLogging() {
}
try {
- const response = await apiServerAxios.post('/api/user/log_mood', { mood, activities }, {
+ const response = await axios.post('/api/user/log_mood', { mood, activities }, {
headers: {
Authorization: `Bearer ${token}`
}
diff --git a/client/src/Components/moodLogs.jsx b/client/src/Components/moodLogs.jsx
index 68d881c4..126d30b9 100644
--- a/client/src/Components/moodLogs.jsx
+++ b/client/src/Components/moodLogs.jsx
@@ -1,6 +1,5 @@
import React, { useState, useEffect } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import '../Assets/Styles/MoodLogs.css';
import ListAltIcon from '@mui/icons-material/ListAlt'; // Icon for mood logs
@@ -17,7 +16,7 @@ function MoodLogs() {
}
try {
- const response = await apiServerAxios.get('/api/user/get_mood_logs', {
+ const response = await axios.get('/api/user/get_mood_logs', {
headers: {
Authorization: `Bearer ${token}`
}
diff --git a/client/src/Components/navBar.jsx b/client/src/Components/navBar.jsx
index 934c1a22..e73ff82e 100644
--- a/client/src/Components/navBar.jsx
+++ b/client/src/Components/navBar.jsx
@@ -1,6 +1,5 @@
import React, {useContext, useState, useEffect} from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import { useNavigate } from 'react-router-dom';
import { AppBar, Toolbar, IconButton, Typography, Badge, Menu, MenuItem, Card, CardContent } from '@mui/material';
import MenuIcon from '@mui/icons-material/Menu';
@@ -35,7 +34,7 @@ function Navbar({ toggleSidebar }) {
return; // Exit the function if no user ID is available
}
try {
- const response = await apiServerAxios.get(`/api/check-in/missed?user_id=${userId}`, {
+ const response = await axios.get(`/api/check-in/missed?user_id=${userId}`, {
headers: {
'Authorization': `Bearer ${token}` // Ensure the Authorization header is set
}
diff --git a/client/src/Components/userContext.jsx b/client/src/Components/userContext.jsx
index 1ce624e9..c8e4780c 100644
--- a/client/src/Components/userContext.jsx
+++ b/client/src/Components/userContext.jsx
@@ -1,6 +1,5 @@
import React, { createContext, useState, useCallback,useEffect } from 'react';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import { useNavigate } from 'react-router-dom';
export const UserContext = createContext({ user: null });
@@ -52,7 +51,7 @@ export const UserProvider = ({ children }) => {
console.error('No token available for logout');
return; // Exit the function if no token is available
}
- const response = await apiServerAxios.post('/api/user/logout', {}, {
+ const response = await axios.post('/api/user/logout', {}, {
headers: {
'Authorization': `Bearer ${token}`
}
@@ -72,7 +71,7 @@ export const UserProvider = ({ children }) => {
const changePassword = async (userId, currentPassword, newPassword) => {
try {
const token = localStorage.getItem('token');
- const response = await apiServerAxios.patch(`/api/user/change_password/${userId}`, {
+ const response = await axios.patch(`/api/user/change_password/${userId}`, {
current_password: currentPassword,
new_password: newPassword
}, {
diff --git a/client/src/Components/userProfile.jsx b/client/src/Components/userProfile.jsx
index bd39b0d6..ddffb4d1 100644
--- a/client/src/Components/userProfile.jsx
+++ b/client/src/Components/userProfile.jsx
@@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react';
import { useParams } from 'react-router-dom';
import PasswordUpdateTab from './passwordUpdateTab';
import axios from 'axios';
-import apiServerAxios from '../api/axios';
import {
TextField, Button, Container, Typography, Paper, CssBaseline, Snackbar, Alert, FormControl, InputLabel, Select, MenuItem,IconButton,Tabs,Tab,Box
@@ -133,7 +132,7 @@ function UserProfile() {
}
const fetchData = async () => {
try {
- const response = await apiServerAxios.get(`/api/user/profile/${userId}`);
+ const response = await axios.get(`/api/user/profile/${userId}`);
console.log("Fetched data:", response.data);
const formattedData = {
username: response.data.username || '',
@@ -187,7 +186,7 @@ function UserProfile() {
const handleSubmit = async (e) => {
e.preventDefault();
try {
- await apiServerAxios.patch(`/api/user/profile/${userId}`, user);
+ await axios.patch(`/api/user/profile/${userId}`, user);
setMessage('Profile updated successfully!');
setSeverity('success');
} catch (error) {
diff --git a/client/src/api/axios.js b/client/src/api/axios.js
deleted file mode 100644
index 28e331ad..00000000
--- a/client/src/api/axios.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import axios from 'axios';
-
-const apiServerAxios = axios.create({
- baseURL: import.meta.env.VITE_AXIOS_BASE_URL,
-});
-
-export default apiServerAxios;
\ No newline at end of file
diff --git a/server/app.py b/server/app.py
index 267700c6..f570477e 100644
--- a/server/app.py
+++ b/server/app.py
@@ -41,10 +41,9 @@ def run_app():
mail = Mail(app)
jwt = JWTManager(app)
cors_config = {
-
- r"*": {
- "origins": ["https://mental-health-app-web.azurewebsites.net", "127.0.0.1"],
- "methods": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"],
+ r"/api/*": {
+ "origins": ["https://green-sand-04b157b0f.5.azurestaticapps.net"],
+ "methods": ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
"allow_headers": [
"Authorization",
"Content-Type",
diff --git a/server/instance/mydatabase.db b/server/instance/mydatabase.db
index 00ce4e6a..9b4ae475 100644
Binary files a/server/instance/mydatabase.db and b/server/instance/mydatabase.db differ
diff --git a/server/poetry.lock b/server/poetry.lock
index b3700b58..deacdbf3 100644
--- a/server/poetry.lock
+++ b/server/poetry.lock
@@ -1031,21 +1031,18 @@ extended-testing = ["beautifulsoup4 (>=4.12.3,<5.0.0)", "lxml (>=4.9.3,<6.0)"]
[[package]]
name = "langsmith"
-version = "0.1.82"
+version = "0.1.81"
description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform."
optional = false
python-versions = "<4.0,>=3.8.1"
files = [
- {file = "langsmith-0.1.82-py3-none-any.whl", hash = "sha256:9b3653e7d316036b0c60bf0bc3e280662d660f485a4ebd8e5c9d84f9831ae79c"},
- {file = "langsmith-0.1.82.tar.gz", hash = "sha256:c02e2bbc488c10c13b52c69d271eb40bd38da078d37b6ae7ae04a18bd48140be"},
+ {file = "langsmith-0.1.81-py3-none-any.whl", hash = "sha256:3251d823225eef23ee541980b9d9e506367eabbb7f985a086b5d09e8f78ba7e9"},
+ {file = "langsmith-0.1.81.tar.gz", hash = "sha256:585ef3a2251380bd2843a664c9a28da4a7d28432e3ee8bcebf291ffb8e1f0af0"},
]
[package.dependencies]
orjson = ">=3.9.14,<4.0.0"
-pydantic = [
- {version = ">=1,<3", markers = "python_full_version < \"3.12.4\""},
- {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""},
-]
+pydantic = ">=1,<3"
requests = ">=2,<3"
[[package]]
@@ -1922,21 +1919,6 @@ files = [
{file = "sentinels-1.0.0.tar.gz", hash = "sha256:7be0704d7fe1925e397e92d18669ace2f619c92b5d4eb21a89f31e026f9ff4b1"},
]
-[[package]]
-name = "setuptools"
-version = "70.1.1"
-description = "Easily download, build, install, upgrade, and uninstall Python packages"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "setuptools-70.1.1-py3-none-any.whl", hash = "sha256:a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95"},
- {file = "setuptools-70.1.1.tar.gz", hash = "sha256:937a48c7cdb7a21eb53cd7f9b59e525503aa8abaf3584c730dc5f7a5bec3a650"},
-]
-
-[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
-testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
-
[[package]]
name = "six"
version = "1.16.0"
@@ -2048,13 +2030,13 @@ sqlcipher = ["sqlcipher3_binary"]
[[package]]
name = "tenacity"
-version = "8.4.2"
+version = "8.4.1"
description = "Retry code until it succeeds"
optional = false
python-versions = ">=3.8"
files = [
- {file = "tenacity-8.4.2-py3-none-any.whl", hash = "sha256:9e6f7cf7da729125c7437222f8a522279751cdfbe6b67bfe64f75d3a348661b2"},
- {file = "tenacity-8.4.2.tar.gz", hash = "sha256:cd80a53a79336edba8489e767f729e4f391c896956b57140b5d7511a64bbd3ef"},
+ {file = "tenacity-8.4.1-py3-none-any.whl", hash = "sha256:28522e692eda3e1b8f5e99c51464efcc0b9fc86933da92415168bc1c4e2308fa"},
+ {file = "tenacity-8.4.1.tar.gz", hash = "sha256:54b1412b878ddf7e1f1577cd49527bad8cdef32421bd599beac0c6c3f10582fd"},
]
[package.extras]
@@ -2299,4 +2281,4 @@ multidict = ">=4.0"
[metadata]
lock-version = "2.0"
python-versions = "^3.11"
-content-hash = "9cc1a2362f6005f533b837ddbe0eb181d9278ea37a9ac8ffb945258f72e1c98d"
+content-hash = "df65d917646723c2f2f5c064f4668d14b148d26192fbc536b3b6b7be60da4998"
diff --git a/server/pyproject.toml b/server/pyproject.toml
index 6cdb48c8..788d1916 100644
--- a/server/pyproject.toml
+++ b/server/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "earlent-server"
-version = "1.1.2"
+version = "1.1.0"
description = "An application meant to help students and professionals with stress and anxiety."
authors = ["Dhrumil Patel ", "Anthony Santana "]
readme = "README.md"
@@ -31,7 +31,6 @@ pywebpush = "^2.0.0"
pytest = "^8.2.2"
pytest-env = "^1.1.3"
pytest-timeout = "^2.3.1"
-setuptools = "^70.1.1"
[tool.pytest.ini_options]
env = [