Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ODHack: Create a Dashboard for User Analytics #161

Open
Julian-dev28 opened this issue Jul 2, 2024 · 22 comments
Open

ODHack: Create a Dashboard for User Analytics #161

Julian-dev28 opened this issue Jul 2, 2024 · 22 comments
Assignees
Labels
good first issue Good for newcomers OD Hack Bounties for OnlyDust

Comments

@Julian-dev28
Copy link
Contributor

Please add PRs to the update-P21 branch

Description:
Develop a dashboard to display user analytics, including metrics such as active users, transactions, and other key performance indicators.

Tasks:

  1. Design Dashboard UI:
    • Create wireframes or mockups for the dashboard.
    • Ensure the design is intuitive and user-friendly.
  2. Fetch Analytics Data:
    • Implement backend endpoints to fetch analytics data.
    • Ensure data is accurate and up-to-date.
  3. Display Data in Charts and Graphs:
    • Use a charting library to display data visually.
    • Include charts for metrics like active users, transactions, and more.
  4. Ensure Real-Time Updates:
    • Implement real-time updates for the dashboard using WebSockets or a similar technology.
    • Ensure data refreshes seamlessly without needing a page reload.
  5. Test Dashboard Functionality:
    • Conduct thorough testing to ensure all dashboard features work correctly.
    • Verify the accuracy of displayed data and real-time updates.

Expected Outcome:

  • A functional and visually appealing dashboard displaying user analytics.
  • Real-time updates of key metrics.
  • Accurate and up-to-date analytics data.

Why This Is Important:
Providing user analytics helps understand user behavior and improve the application based on insights. It also aids in monitoring the health and performance of the application.

@kamalbuilds
Copy link

Hello Julian, I am looking to pick this up for the LamdaHackWeek.

@Julian-dev28 Julian-dev28 added the good first issue Good for newcomers label Jul 18, 2024
@Julian-dev28 Julian-dev28 added OD Hack Bounties for OnlyDust and removed LambdaHackWeek labels Jul 26, 2024
@Julian-dev28 Julian-dev28 changed the title LambdaHackWeek: Create a Dashboard for User Analytics ODHack: Create a Dashboard for User Analytics Jul 26, 2024
@HumbertoTM10
Copy link

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I have 4 years working in development environments, have encountered several challenges, requests and teams focusing in reusable and efficient code, so that gives me a better understanding of the code and how to solve problems efficiently.

How I plan on tackling this issue

First of all will look at the data sources and data available in order to understand what is required to be shown, according to that desing appealing dahsboards that show in an easy to understand format that data. After that work towards the backend structure in order to fetch data and be constantly updating it.

At the end, do the testing to make sure the implementations are working properly.

@ooochoche
Copy link

@Julian-dev28 If this isn't assigned to someone, I can jump on it. I am into UI design

Copy link

onlydustapp bot commented Jul 29, 2024

Hey @ooochoche!
Thanks for showing interest.
We've created an application for you to contribute to Soroban Example Dapp.
Go check it out on OnlyDust!

@chibokaxavier
Copy link

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi, I'm Chiboka Emmanuel, a frontend-focused software engineer with over three years of experience. I'm proficient in CSS, Tailwind CSS, Next.js, React.js, TypeScript, and more. I've transformed complex designs into responsive, interactive web pages and integrated numerous third-party APIs for real-time data fetching. I excel in collaborative environments, ensuring seamless UI/UX and optimized codebases for high-performing web applications.

How I plan on tackling this issue

Designing the Dashboard UI: First, I'll start by creating wireframes or mockups using tools like Figma. My goal is to design a dashboard interface that is intuitive and user-friendly. I will make sure the design is consistent, accessible, and works well on different devices.

Fetching Analytics Data: Next, I'll set up backend endpoints with Node.js and Express.js to fetch analytics data from a database like MongoDB . I'll ensure the data is accurate and up-to-date and that the endpoints are secure and efficient.

Displaying Data in Charts and Graphs: Using a charting library like Chart.js or Recharts, I'll visually display the analytics data. I'll create various charts for key metrics, such as active users and transactions, to make the data easy to understand.

Ensuring Real-Time Updates: I'll implement real-time updates with WebSockets or a similar technology. By setting up WebSocket endpoints on the backend and integrating them with the frontend, I'll ensure that the dashboard data refreshes seamlessly without requiring a page reload.

Testing Dashboard Functionality: Lastly, I'll thoroughly test the dashboard to ensure all features work correctly. This includes manual testing to verify data accuracy and real-time updates.

@0xdevcollins
Copy link

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

With 3 years of solid experience in JavaScript, TypeScript, and React, I have developed a strong proficiency in creating intuitive and visually appealing user interfaces. My work on various projects, including browser extensions, has provided me with valuable insights into enhancing user experience and ensuring responsiveness across different devices. Here is my github profile https://github.com/devcollinss

How I plan on tackling this issue

Design UI:

I will start by sketching wireframes and mockups in Figma to outline the dashboard layout and user flow.
Then, I'll translate these designs into React components within your Next.js application, ensuring a seamless integration with the existing UI.

Fetch Data:

I’ll create API routes in Next.js (e.g., pages/api/analytics.js) to handle backend requests for fetching analytics data.
Next, I’ll  pull data from these endpoints and manage any data fetching errors gracefully.

Display Data:

I’ll integrate a charting library like Chart.js  to visualize the data effectively.
Then, I’ll implement these charts within Next.js pages, making sure they adapt responsively to different screen sizes using tailwindcss.

Real-Time Updates:

I will set up WebSocket connections using a library such as socket.io to enable real-time data updates.
Next, I’ll ensure that React components in Next.js properly handle these updates, reflecting changes in the UI without needing a full page reload.

Testing:

I’ll write unit tests for the React components using Jest and React Testing Library to ensure they work as expected.
Finally, I’ll conduct end-to-end tests with Cypress to verify the complete functionality of the dashboard, including real-time updates.

@Benjtalkshow
Copy link

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi @Julian-dev28,

I will be glad to implement the dashboard for user analytics, transactions, and more for the Soroban Example Dapp. My track record includes the successful implementation of the block details page in the Op Scan Project during the last ODHack, which was recognized for its quality. I have worked on various dashboard analytics-related projects such as TechCare Hospital Management and Analytics, and the Solvety Survey Platform and Data Analytics. With my 3 years of expertise in full-stack development using tools like Next.js, TypeScript, Shadcn, and React, I am confident in my ability to create a visually appealing dashboard displaying user analytics, real-time updates of key metrics, and accurate and up-to-date analytics data.

How I plan on tackling this issue

Proposed Solution for User Analytics Dashboard

Design Dashboard UI:

  • I will create wireframes or mockups for the dashboard.
  • The design will be intuitive and user-friendly, ensuring a seamless user experience.

Fetch Analytics Data:

  • I will implement backend endpoints to fetch analytics data.
  • I will ensure the data is accurate and up-to-date, providing reliable metrics for analysis.

Display Data in Charts and Graphs:

  • I will use a charting library like Chartjs to display data visually.
  • The dashboard will include charts for metrics such as active users, transactions, and other key performance indicators.
  • The charts will be interactive and easy to interpret.

Ensure Real-Time Updates:

  • I will implement real-time updates for the dashboard using WebSockets or similar technology.
  • The data will refresh seamlessly without requiring a page reload, ensuring users always see the latest information.

Expected Outcome:

  • A functional and visually appealing dashboard displaying user analytics.
    Real-time updates of key metrics.
  • Accurate and up-to-date analytics data.

I hope to get this issue assigned to me and i will deliver a top-notch solution. Thanks

@ScottyDavies
Copy link

I am applying to this issue via OnlyDust platform.
Design Dashboard UI:
Create simple, clean wireframes for the dashboard layout.
Focus on intuitive, user-friendly design.
Fetch Analytics Data:
Coordinate with the backend team to set up the necessary API endpoints.
Ensure the data covers key metrics like active users, transactions, etc.
Display Data in Charts and Graphs:
Use a lightweight charting library like Recharts or ApexCharts.
Choose appropriate chart types to effectively visualize the data.
Implement Real-Time Updates:
Set up a WebSocket connection to enable seamless data updates.
Ensure smooth, instant updates without full page reloads.
Test and Refine:
Thoroughly test the dashboard functionality and data accuracy.
Gather user feedback and iterate on the design and features.

@PoulavBhowmick03
Copy link

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a seasoned fullstack blockchain developer, with over 2 years of experience
I have contributed to many open source repositories and also to OnlyDust

How I plan on tackling this issue

  1. Design Dashboard UI:

Create wireframes or mockups for the dashboard.
Ensure the design is intuitive and user-friendly.
Fetch Analytics Data:

Implement backend endpoints to fetch analytics data.
Ensure data is accurate and up-to-date.

  1. Display Data in Charts and Graphs:

Use a charting library to display data visually.
Include charts for metrics like active users, transactions, and more.
Ensure Real-Time Updates:

Implement real-time updates for the dashboard using WebSockets or similar technology.
Ensure data refreshes seamlessly without needing a page reload.

  1. Test Dashboard Functionality:

Conduct thorough testing to ensure all dashboard features work correctly.
Verify the accuracy of displayed data and real-time updates.

@Utkarsh-626744
Copy link

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a software engineer at Zscaler with a year of experience in providing cloud security solutions. My role involves developing secure, scalable cloud-based applications, which has honed my skills in cloud infrastructure, security protocols, and system architecture. Additionally, I have developed a blockchain project that connects multiple wallets, showcasing my proficiency in blockchain technology, smart contract development, and Dapp deployment. This project is deployed on Netlify and available on my GitHub profile. My expertise in cloud security ensures that blockchain projects are secure from various threats while being scalable and efficient. I excel in integrating blockchain networks, deploying applications, and maintaining them using CI/CD pipelines. My collaborative approach, problem-solving skills, and customer-centric mindset further enhance my ability to deliver innovative and secure solutions in both cloud security and blockchain domains.

How I plan on tackling this issue

To develop a User Analytics Dashboard, start by designing an intuitive and user-friendly interface using wireframing tools like Figma or Sketch. Implement a robust backend with Node.js and Express.js to create API endpoints that fetch accurate and up-to-date analytics data from a reliable source. Use React.js and a charting library such as Chart.js to display the data visually, incorporating charts for metrics like active users and transactions. Enable real-time updates with WebSockets to ensure dynamic data refreshes without page reloads. Thoroughly test the dashboard using Jest and React Testing Library to verify the accuracy of data and functionality, ensuring a seamless user experience that supports data-driven decision-making.

@coxmars
Copy link

coxmars commented Jul 31, 2024

Hi @Julian-dev28 I will work asap on this issue, if I have questions I will let you know thanks 🫡

@coxmars
Copy link

coxmars commented Aug 5, 2024

Hi @Julian-dev28 I will work asap on this issue, if I have questions I will let you know thanks 🫡

Unfortunately, due to other commitments, I am unable to complete this issue. I recommend reassigning the issue to someone else who can give it the attention it deserves, I appreciate the opportunity and hope to contribute to this project in the future.

@coxmars coxmars removed their assignment Aug 5, 2024
@Benjtalkshow
Copy link

@Julian-dev28
The person assigned to this task unassigned themselves a few hours ago. Can you assign me the task? I am ready to jump on it and finish it as soon as possible. I have already commented above. I have extensive experience with dashboards, user analytics and end point implementation, and I'd be glad to take on this issue.

@HumbertoTM10
Copy link

My background and how it can be leveraged

I have 4 years working in development environments, have encountered several challenges, requests and teams focusing in reusable and efficient code, so that gives me a better understanding of the code and how to solve problems efficiently.

How I plan on tackling this issue

First of all will look at the data sources and data available in order to understand what is required to be shown, according to that desing appealing dahsboards that show in an easy to understand format that data. After that work towards the backend structure in order to fetch data and be constantly updating it.

At the end, do the testing to make sure the implementations are working properly.

@Jemiiah
Copy link

Jemiiah commented Aug 5, 2024

hello @Julian-dev28 this is my first time on the repo I have made contribution to other repositories and I'm a frontend developer please I would love to contribute to this repository and work on this particular issue and would be giving you frequent feedback as I'm getting the work done!!

@Jemiiah
Copy link

Jemiiah commented Aug 6, 2024

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hello @Julian-dev28 I'm a web 3 blockchain developer who's contributing to old and new repositories this would be my first time on this repo would love the opportunity to contribute to this project

How I plan on tackling this issue

  1. Design Dashboard UI:
    Create wireframes or mockups:
    Use a design tool like Figma, Sketch, or Adobe XD.
    Sketch the layout with sections for different metrics (active users, transactions, etc.).
    Ensure it’s intuitive by following UI/UX best practices.

  2. Fetch Analytics Data:
    Set up your backend:
    Choose a backend framework (Node.js with Express, Django, Flask, etc.).

  3. Display Data in Charts and Graphs:
    Set up your frontend:
    Choose a frontend framework (React, Vue, Angular).

Install a charting library (Chart.js, D3.js, Plotly).

Example using React and Chart.js:
Connect to the data source (database or analytics API).

Write endpoints to fetch data. Example in Node.js:
npx create-react-app my-dashboard
cd my-dashboard
npm install chart.js react-chartjs-2 axios

  1. Ensure Real-Time Updates:
    Implement WebSockets:
    Use Socket.IO for real-time communication in Node.js.
    npm install socket.io

// In your backend code
const http = require('http').Server(app);
const io = require('socket.io')(http);

io.on('connection', (socket) => {
console.log('a user connected');
// Emit data updates
setInterval(() => {
const data = fetchDataFromSource();
socket.emit('updateData', data);
}, 10000); // Update every 10 seconds
});

http.listen(PORT, () => {
console.log(Server is running on port ${PORT});
});

// In the React frontend
import { useEffect, useState } from 'react';
import io from 'socket.io-client';

const socket = io('http://localhost:3000');

useEffect(() => {
socket.on('updateData', (newData) => {
setData(newData);
});
}, []);

  1. Design Dashboard UI:
    Create wireframes or mockups:
    Use a design tool like Figma, Sketch, or Adobe XD.
    Sketch the layout with sections for different metrics (active users, transactions, etc.).
    Ensure it’s intuitive by following UI/UX best practices.

  2. Fetch Analytics Data:
    Set up the backend:
    Choose a backend framework (Node.js with Express, Django, Flask, etc.).

Connect to your data source (database or analytics API).

Write endpoints to fetch data. Example in Node.js:

javascript

const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

app.get('/api/analytics', (req, res) => {
// Fetch data from your database or API
const data = fetchDataFromSource();
res.json(data);
});

app.listen(PORT, () => {
console.log(Server is running on port ${PORT});
});

function fetchDataFromSource() {
// Implement your data fetching logic here
return {
activeUsers: 120,
transactions: 45
};
}

  1. Display Data in Charts and Graphs:
    Set up the frontend:
    Choose a frontend framework (React, Vue, Angular).

npx create-react-app my-dashboard
cd my-dashboard
npm install chart.js react-chartjs-2 axios
javascript

// src/App.js
import React, { useEffect, useState } from 'react';
import { Bar } from 'react-chartjs-2';
import axios from 'axios';

function App() {
const [data, setData] = useState({});

useEffect(() => {
    axios.get('/api/analytics').then(response => {
        setData(response.data);
    });
}, []);

const chartData = {
    labels: ['Active Users', 'Transactions'],
    datasets: [{
        label: 'Metrics',
        data: [data.activeUsers, data.transactions],
        backgroundColor: ['rgba(75, 192, 192, 0.6)', 'rgba(153, 102, 255, 0.6)']
    }]
};

return (
    <div className="App">
        <h1>User Analytics Dashboard</h1>
        <Bar data={chartData} />
    </div>
);

}

export default App;

  1. Ensure Real-Time Updates:
    Implement WebSockets:
    Use Socket.IO for real-time communication in Node.js.

npm install socket.io
javascript

// In your backend code
const http = require('http').Server(app);
const io = require('socket.io')(http);

io.on('connection', (socket) => {
console.log('a user connected');
// Emit data updates
setInterval(() => {
const data = fetchDataFromSource();
socket.emit('updateData', data);
}, 10000); // Update every 10 seconds
});

http.listen(PORT, () => {
console.log(Server is running on port ${PORT});
});
javascript

import { useEffect, useState } from 'react';
import io from 'socket.io-client';

const socket = io('http://localhost:3000');

useEffect(() => {
socket.on('updateData', (newData) => {
setData(newData);
});
}, []);

  1. Test Dashboard Functionality:
    Testing:
    Write unit tests for your backend endpoints using a testing framework like Jest.
    Use frontend testing libraries like React Testing Library to test your components.
    Conduct end-to-end testing using tools like Cypress.

Final Touches:
Ensure the dashboard is responsive.
Perform usability testing to get feedback from users.
Optimize performance to handle large data sets.

@Ugo-X
Copy link

Ugo-X commented Aug 6, 2024

@Julian-dev28 , please can i be assigned this?

@hart-venus
Copy link

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi, I've been programming in web for about 2 years, I've also been interested in rust and i know most of the syntax, I'd love to be in this project.

How I plan on tackling this issue

  1. Research websocket implementation for Rust backend
  2. Implement real time data fetching for the rust backend
  3. ensure correct functionality via unit tests and ensure all database secrets are secure before connecting to typescript UI
  4. render typescript UI with websockets
  5. finish dashboard components

@Jemiiah
Copy link

Jemiiah commented Aug 13, 2024

hello @Julian-dev28 pls can i work on this issue

Copy link

onlydustapp bot commented Aug 13, 2024

The maintainer Julian-dev28 has assigned Jemiiah to this issue via OnlyDust Platform.
Good luck!

@Jemiiah
Copy link

Jemiiah commented Aug 18, 2024

@Julian-dev28 pls can I get the contract-ID

--contract-id <CONTRACT_ID>

@Jemiiah
Copy link

Jemiiah commented Aug 26, 2024

Hello @Julian-dev28 i tried messaging you telegram no response I would like clarification on certain things :

Backend Framework: I want to confirm if I’ll be using Next.js server-side capabilities for the backend, or if I’ll set up a separate backend service? If a separate backend is considered, what technologies I’m I evaluating?

Data Storage: How will I store and manage the analytics data? I’m I considering a dedicated database, and if so, which one (e.g., PostgreSQL, MongoDB)?

Events: I’m I going to setup the events listeners| indexer on the backend or what infra do you suggest here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers OD Hack Bounties for OnlyDust
Projects
None yet
Development

No branches or pull requests