Skip to content

Instantly share code, notes, and snippets.

View sourabhbagrecha's full-sized avatar
🎯
Focusing

Sourabh Bagrecha sourabhbagrecha

🎯
Focusing
View GitHub Profile
exports = async (input) => {
const {from, to} = input;
const collection = context.services.get('mongodb-atlas').db('expengo').collection("expenses");
const user = context.user.id;
// Pipeline to filter relevant expenses as per the date range
// and group them by the mode name and calculate the total amount
// per mode.
const pipeline = [
{
{
"type": "object",
"title": "ModeAnalyticsOutput",
"properties": {
"modes": {
"bsonType": "array",
"items": {
"bsonType": "object",
"title": "modeAnalyticsItem",
"properties": {
import Chart from "react-google-charts";
const ModeAnalytics = ({ data }) => {
const chartData = [["Mode", "Amount"]];
data.forEach(({ mode, amount }) => {
chartData.push([mode, amount]);
});
return <>
<h3>Mode Analytics</h3>
<Chart
import Chart from "react-google-charts";
const CategoryAnalytics = ({ data }) => {
const chartData = [["Category", "Amount"]];
data.forEach(({ category, amount }) => {
chartData.push([category, amount]);
});
return <>
<h3>Category Analytics</h3>
<Chart
import { BrowserRouter, Route, Routes } from "react-router-dom";
import NavBar from "./components/NavBar.component";
import { UserProvider } from "./contexts/user.context";
import Analytics from "./pages/Analytics.page";
import CreateExpense from "./pages/CreateExpense.page";
import EditExpense from "./pages/EditExpense.page";
import Home from "./pages/Home.page";
import Login from "./pages/Login.page";
import PrivateRoute from "./pages/PrivateRoute.page";
import Signup from "./pages/Signup.page";
import { QueryClient, QueryClientProvider } from "react-query";
import { BrowserRouter, Route, Routes } from "react-router-dom";
import NavBar from "./components/NavBar.component";
import { UserProvider } from "./contexts/user.context";
import Analytics from "./pages/Analytics.page";
import CreateExpense from "./pages/CreateExpense.page";
import EditExpense from "./pages/EditExpense.page";
import Home from "./pages/Home.page";
import Login from "./pages/Login.page";
import PrivateRoute from "./pages/PrivateRoute.page";
import { useContext } from 'react';
import request, { gql } from 'graphql-request';
import PageContainer from "../components/PageContainer.component";
import { UserContext } from '../contexts/user.context';
import { GRAPHQL_ENDPOINT } from '../realm/constants';
import ExpenseCard from '../components/ExpenseCard.component';
import { useQuery } from 'react-query';
const Home = () => {
const { user } = useContext(UserContext);
import { useContext, useState } from "react";
import { Button, Grid } from "@mui/material";
import request, { gql } from "graphql-request";
import { formatISO, subMonths, endOfToday, startOfDay, endOfDay } from "date-fns";
import { UserContext } from "../contexts/user.context";
import { GRAPHQL_ENDPOINT } from "../realm/constants";
import PageContainer from "../components/PageContainer.component";
import CustomDatePicker from "../components/CustomDatePicker.component";
import ModeAnalytics from "../components/ModeAnalytics.component";
import CategoryAnalytics from "../components/CategoryAnalytics.component";
import { useContext, useState } from "react";
import PageContainer from "../components/PageContainer.component";
import { UserContext } from "../contexts/user.context";
import { gql, request } from "graphql-request";
import { GRAPHQL_ENDPOINT } from "../realm/constants";
import ExpenseForm from "../components/ExpenseForm.component";
import { useNavigate } from "react-router-dom";
import { useMutation } from "react-query";
const CreateExpense = () => {
import { useContext, useState } from "react";
import PageContainer from "../components/PageContainer.component";
import { UserContext } from "../contexts/user.context";
import { gql, request } from "graphql-request";
import { GRAPHQL_ENDPOINT } from "../realm/constants";
import ExpenseForm from "../components/ExpenseForm.component";
import { useParams, useNavigate } from "react-router-dom";
import { useMutation, useQuery } from "react-query";
const EditExpense = () => {