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
To run this project, you will need to add the following environment variables to your .env file on /api/.env.[development | production]
need to add .env.development to run Locally
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
Clone the project
git clone https://github.com/kaleabteweld/EventScoutsGo to the project directory
cd EventScouts/apiInstall dependencies
npm installRun Solidity Compiler to compile
npm run contracts-compileStart the Development server (will set NODE_ENV to development)
npm run devTo run tests, run the following command
npm run api-testTo deploy this project run
Run Test
npm run api-testRun Solidity Compiler to compile
npm run contracts-compiledeploy contracts
npm run contracts-deploy npm run deployStart the Production server (will set NODE_ENV to production)
npm run production GET /docs- 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.
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.
Server:
- Node
- Express
- mongoose
- ethers/hardhat
- joi
- redis
- swagger-ui-express
- cohere-ai
For support, email kaleabteweld3@gmail.com or Open an issue.
