Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kaleabteweld/eventscouts
Experience the future of event ticketing with Web 3.0 EventScouts, where NFTs serve as tamper-proof, secure, and collectible digital tickets on the blockchain
https://github.com/kaleabteweld/eventscouts
ethersjs expressjs hardhat mongoose solidity-contracts typescript
Last synced: about 1 month ago
JSON representation
Experience the future of event ticketing with Web 3.0 EventScouts, where NFTs serve as tamper-proof, secure, and collectible digital tickets on the blockchain
- Host: GitHub
- URL: https://github.com/kaleabteweld/eventscouts
- Owner: kaleabteweld
- License: other
- Created: 2023-12-22T15:29:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-14T09:15:55.000Z (8 months ago)
- Last Synced: 2024-05-03T07:12:24.316Z (8 months ago)
- Topics: ethersjs, expressjs, hardhat, mongoose, solidity-contracts, typescript
- Language: TypeScript
- Homepage:
- Size: 1.74 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
## Badges
![mongodb 6.0.2](https://img.shields.io/badge/MongoDB-v6.0.2-green)
![nodeJs 20.9.0](https://img.shields.io/badge/Node.js-20.9.0-yellow)# EventScouts
Experience the future of event ticketing with Web 3.0 EventScouts, where NFTs serve as tamper-proof, secure, and collectible digital tickets on the blockchain
## Environment Variables
To run this project, you will need to add the following environment variables to your **.env file on /api/.env.[development | production]**
### .env.development
need to add .env.development to run Locally### .env.production
need to add .env.production for production`INFURA_URL` This variable specifies the URL of the Infura node used for interacting with the Ethereum blockchain. In this case, it's set to a local Ganache instance running on http://127.0.0.1:7545.
`DATABASE_URL` This variable contains the connection string for MongoDB, specifying the database URL (mongodb://localhost:27017/EventScouts) where the application data will be stored.
`MONGOMS_SYSTEM_BINARY`: This variable points to the location of the MongoDB system binary (mongod.exe) on your system. It's used for **Testing Requires MongoDB v6.0.9**
`USER_SECRET`, `ORGANIZER_SECRET`: These are JWT secrets used for signing and verifying JSON Web Tokens for user authentication, organizer authentication, and controller authentication, respectively.
`USER_REfRESH_SECRET`, ORGANIZER_REfRESH_SECRET, CONTROLLER_REfRESH_SECRET: Similar to the previous set of secrets, these are used specifically for generating refresh tokens.
`COHERE_API_KEY`: This variable holds the API key for integrating with the Cohere API, which provides natural language processing functionality.
`CIPHERIV_SECRET_KEY`: This is a secret key used for encrypting shareable ID like shareable event link.
`SHAREABLE_LINK_BASE_URL`: This variable defines the base URL for generating shareable links, typically used for sharing events or content within the application.`
`GOOGLE_APPLICATION_CREDENTIALS`: the path for your firebase json file
## Run Locally
Clone the project
```bash
git clone https://github.com/kaleabteweld/EventScouts
```Go to the project directory
```bash
cd EventScouts/api
```Install dependencies
```bash
npm install
```Run Solidity Compiler to compile
```bash
npm run contracts-compile
```Start the Development server (will set NODE_ENV to development)
```bash
npm run dev
```## Running Tests
To run tests, run the following command
```bash
npm run api-test
```## Deployment
To deploy this project run
Run Test
```bash
npm run api-test
```Run Solidity Compiler to compile
```bash
npm run contracts-compile
```deploy contracts
```bash
npm run contracts-deploy
``````bash
npm run deploy
```Start the Production server (will set NODE_ENV to production)
```bash
npm run production
```## API Reference
#### run docs
```http
GET /docs
```## Screenshots
![demo](https://github.com/kaleabteweld/EventScouts/blob/main/.github/image.png?raw=true)
## Lessons Learned
- web3: Understanding how to interact with Ethereum and other blockchain networks using web3 libraries provided valuable insights into decentralized application development.
- ethers/hardhat: Exploring ethers.js and Hardhat allowed for efficient and effective Ethereum smart contract development, testing, and deployment processes.
- solidity: Learning Solidity enabled the creation of smart contracts for various decentralized applications, providing a foundation for blockchain development.
- mongoose: Working with Mongoose provided a deeper understanding of MongoDB integration within Node.js applications, facilitating efficient data modeling and querying capabilities.### Overall Insights
Decentralized applications (DApps) and web3 technology bring a unique flavor of interesting features to the world of software development. They offer decentralized, trustless, and transparent systems that can revolutionize various industries. However, it's essential to remember that despite their innovative nature, they ultimately serve as decentralized leisure systems. Integrating them with traditional web two systems adds another layer of complexity but is crucial for creating seamless user experiences and unlocking the full potential of decentralized technologies.
## Tech Stack**Server:**
- Node
- Express
- mongoose
- ethers/hardhat
- joi
- redis
- swagger-ui-express
- cohere-ai## Authors
- [@kaleabteweld](https://github.com/kaleabteweld)
## Support
For support, email [email protected] or Open an [issue](https://github.com/kaleabteweld/EventScouts/issues).