EMIT is a multi-faceted ecosystem consisting of several distinct components. This aggregated README provides an overview of each project within the repository.
The EMIT Backend is built using NestJS and provides a robust API service. It implements key features such as:
- Modular Architecture: Organized into modules for authentication, blockchain monitoring, and task management.
- Secure Authentication: Uses JWT-based authentication with guard mechanisms to protect routes.
- Blockchain Monitoring: Tracks smart contract events and ensures data integrity.
- Docker Support: Enables containerized deployment for consistency across environments.
Setup and Usage:
- Install dependencies using
npm installoryarn install. - Create a
.envfile with the required environment variables (e.g., DATABASE_URL, SECRET_KEY, etc.). - Run in development mode:
npm run start:dev. - For production, build and start with
npm run buildandnpm run start:prod.
For details, see Backend README
The Contest Frontend offers a fast, modern, and responsive user interface built with React and Vite. It delivers an interactive contest experience with features such as:
- Modern UI/UX: Responsive design ensuring an optimal experience on all devices.
- Component-Based Architecture: Simplifies maintainability and reusability of code.
- Backend Integration: Connects seamlessly with the EMIT Backend for real-time data updates.
Setup and Usage:
- Navigate to the
ContestFrontdirectory:cd ContestFront. - Install dependencies using
npm installoryarn install. - Start the development server with
npm run dev.
For details, see Contest Frontend README
EMIT Frontend delivers a comprehensive web interface for the EMIT ecosystem. Built with React, TypeScript, Vite, and Tailwind CSS, it offers:
- Rapid Development: Utilizes Vite for fast builds and hot module replacement.
- Clean and Scalable Code: Modular React components and robust styling via Tailwind CSS.
- Docker Support: Ready for containerized deployment.
Setup and Usage:
- Navigate to the
Emit-Frontenddirectory. - Install dependencies using
pnpm install(or npm as preferred). - Start development with
pnpm run dev.
For details, see Emit Frontend README
The Emit Instances project demonstrates a Hardhat-based setup for smart contract development and deployment. It includes:
- Sample Contracts & Tests: Provides example contracts and corresponding tests to validate functionality.
- Ignition Modules: Automates deployment tasks using Hardhat ignition (e.g., deploying the Lock contract).
Setup and Usage:
- Run tests using:
npx hardhat test. - Deploy contracts with:
npx hardhat ignition deploy ./ignition/modules/Lock.ts.
For details, see Emit Instances README
Each component of the EMIT project is tailored to address specific requirements, from backend API services and blockchain monitoring to modern frontend interfaces and smart contract deployments. For further details, please refer to the individual README files in each project folder.