0% found this document useful (0 votes)
12 views5 pages

T-MIni App

The project aims to develop a Telegram Mini App for event check-ins and networking, featuring blockchain integration through MetaMask for NFT badges and gamification. It includes a ReactJS frontend for user interaction and a Spring Boot backend for event management and user authentication. Smart contracts will handle check-ins and NFT badge minting, with deployment on cloud platforms and Ethereum network.

Uploaded by

Sarthak Deokar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views5 pages

T-MIni App

The project aims to develop a Telegram Mini App for event check-ins and networking, featuring blockchain integration through MetaMask for NFT badges and gamification. It includes a ReactJS frontend for user interaction and a Spring Boot backend for event management and user authentication. Smart contracts will handle check-ins and NFT badge minting, with deployment on cloud platforms and Ethereum network.

Uploaded by

Sarthak Deokar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

---

# Project Overview: Telegram Mini App for Event Check-Ins and Networking

## Project Objective

The goal of this project is to build a Telegram Mini App that allows users to check in at
events, similar to Facebook, and connect with fellow attendees at conferences. This app will
also include blockchain integration via MetaMask, providing unique features such as NFT
badges for event attendance, blockchain-based networking, and gamification elements.

## Project Components

### 1. **Frontend (ReactJS)**

#### User Interface

- **Event List**: Display a list of upcoming and past events.

- **Event Details**: Provide detailed information about each event, including speakers,
agenda, and location.

- **Check-In Button**: Allow users to check in to an event using MetaMask authentication.

- **Profile Page**: Display user profile information, including past events attended and
earned NFT badges.

- **Networking Section**: Show a list of other attendees with options to connect or view
profiles.

#### Libraries and Dependencies

- `react`: Core React library.

- `react-router-dom`: For navigation within the app.


- `web3`: For interacting with the Ethereum blockchain via MetaMask.

- `axios`: For making HTTP requests to the backend.

- `styled-components`: For styling components.

- `react-toastify`: For notifications and alerts.

#### MetaMask Integration

- **Web3.js Setup**: Initialize Web3 and connect to MetaMask.

- **Connect Wallet**: Functionality for users to connect their MetaMask wallet and display
their wallet address.

- **Check-In Functionality**: Interact with the smart contract to record check-ins on the
blockchain.

### 2. **Backend (Spring Boot)**

#### API Endpoints

- **User Authentication**: Secure endpoints using OAuth2 or JWT.

- **Event Management**:

- `GET /api/events`: Retrieve a list of all events.

- `GET /api/events/{id}`: Retrieve details of a specific event.

- `POST /api/events`: Create a new event.

- `PUT /api/events/{id}`: Update an existing event.

- `DELETE /api/events/{id}`: Delete an event.

- **Check-In Management**:

- `POST /api/checkin`: Optionally record a check-in (primary check-in is via blockchain).

- **User Profile**:

- `GET /api/profile`: Retrieve user profile information.


- `POST /api/profile`: Update user profile information.

#### Technologies and Dependencies

- `spring-boot-starter-web`: For building web applications.

- `spring-boot-starter-security`: For securing the application.

- `spring-boot-starter-data-jpa`: For database access.

- `mysql-connector-java`: MySQL database connector.

- `web3j`: For blockchain interactions from Java.

#### Database

- **Users**: Store user information, including profile details and linked wallet addresses.

- **Events**: Store event details, including metadata and status.

- **Check-Ins**: Optionally store check-in records for data redundancy.

### 3. **Smart Contracts**

#### Check-In Contract

- **Functions**:

- `checkIn(address user, uint eventId)`: Record a check-in for a user at a specific event.

- `getCheckIn(uint eventId)`: Retrieve the list of attendees for a specific event.

#### NFT Badge Contract

- **Functions**:

- `mintBadge(address user, uint eventId)`: Mint a new NFT badge for a user who attended an
event.

- `getBadges(address user)`: Retrieve all badges owned by a user.


### 4. **New Ideas Implementation**

#### NFT Badges

- Users receive an NFT badge as proof of attendance after checking in. These badges are
minted using the ERC-721 standard and stored in the user's wallet. They are displayed on the
user's profile page.

#### Blockchain-Based Networking

- Users can share their profile details with others using a decentralized profile system. Smart
contracts manage the sharing and visibility of user profiles.

#### Gamification

- Users earn points for checking in to events, stored in a smart contract. These points can be
redeemed for rewards or displayed on a leaderboard.

### 5. **Deployment and Environment**

#### Frontend

- Deployed using Vercel or Netlify.

#### Backend

- Deployed on Heroku, AWS, or any other preferred cloud provider.

#### Smart Contracts

- Deployed on the Ethereum mainnet or a testnet like Rinkeby.


#### Environment Variables

- `REACT_APP_INFURA_API_KEY`: For connecting to the Ethereum network.

- `REACT_APP_BACKEND_URL`: URL of the backend API.

-`

You might also like