Skip to content

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

License

Notifications You must be signed in to change notification settings

kaleabteweld/EventScouts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Badges

mongodb 6.0.2 nodeJs 20.9.0

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

  git clone https://github.com/kaleabteweld/EventScouts

Go to the project directory

  cd EventScouts/api

Install dependencies

  npm install

Run Solidity Compiler to compile

  npm run contracts-compile

Start the Development server (will set NODE_ENV to development)

  npm run dev

Running Tests

To run tests, run the following command

  npm run api-test

Deployment

To deploy this project run

Run Test

  npm run api-test

Run Solidity Compiler to compile

  npm run contracts-compile

deploy contracts

  npm run contracts-deploy
  npm run deploy

Start the Production server (will set NODE_ENV to production)

  npm run production

API Reference

run docs

  GET /docs

Screenshots

demo

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

Support

For support, email kaleabteweld3@gmail.com or Open an issue.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages