Skip to content

YashSharma10/CarbonEase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Carbon Credit Trading Platform

## Introduction

This project is a comprehensive Carbon Credit Trading platform built using the MERN (MongoDB, Express.js, React.js, Node.js) stack. It aims to facilitate the buying, selling, and tracking of carbon credits in both compliance and voluntary markets.

## Table of Contents

1. [Features](#features)
2. [Technologies Used](#technologies-used)
3. [Getting Started](#getting-started)
4. [Project Structure](#project-structure)
5. [API Endpoints](#api-endpoints)
6. [Database Schema](#database-schema)
7. [Frontend Components](#frontend-components)
8. [Testing](#testing)
9. [Deployment](#deployment)
10. [Contributing](#contributing)
11. [License](#license)

## Features

- User authentication and authorization
- Carbon credit listing and management
- Real-time trading platform
- Dashboard for tracking emissions and credits
- Integration with external carbon credit verification services
- Reporting and analytics tools
- Admin panel for system management

## Technologies Used

- **Frontend**: React.js, Redux, Material-UI
- **Backend**: Node.js, Express.js
- **Database**: MongoDB
- **Authentication**: JSON Web Tokens (JWT)
- **Real-time Updates**: Socket.io
- **Testing**: Jest, React Testing Library
- **Deployment**: Docker, AWS/Heroku

## Getting Started

### Prerequisites

- Node.js (v14 or later)
- MongoDB
- npm or yarn

### Installation

1. Clone the repository:

git clone https://github.com/yourusername/carbon-credit-trading.git


2. Install dependencies:

cd carbon-credit-trading npm install


3. Set up environment variables:
Create a `.env` file in the root directory and add the following:

MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret PORT=5000


4. Start the development server:

npm run dev


## Project Structure

carbon-credit-trading/ │ ├── client/ # React frontend │ ├── src/ │ │ ├── components/ # Reusable components │ │ ├── pages/ # Page components │ │ ├── redux/ # Redux store and slices │ │ └── App.js # Main App component │ └── package.json │ ├── server/ # Node.js backend │ ├── controllers/ # Request handlers │ ├── models/ # Mongoose models │ ├── routes/ # API routes │ ├── middleware/ # Custom middleware │ ├── utils/ # Utility functions │ └── server.js # Entry point for the server │ ├── tests/ # Test files ├── .env # Environment variables ├── .gitignore ├── package.json └── README.md


## API Endpoints

- `POST /api/auth/register` - Register a new user
- `POST /api/auth/login` - User login
- `GET /api/credits` - Get all carbon credits
- `POST /api/credits` - Create a new carbon credit listing
- `PUT /api/credits/:id` - Update a carbon credit listing
- `DELETE /api/credits/:id` - Delete a carbon credit listing
- `POST /api/trades` - Execute a trade
- `GET /api/dashboard` - Get user dashboard data

## Database Schema

- **User**: Stores user information and authentication details
- **CarbonCredit**: Represents a carbon credit listing
- **Trade**: Records completed trades between users
- **Verification**: Stores verification data for carbon credits

## Frontend Components

- **LoginForm**: User authentication
- **CreditListing**: Display and manage carbon credit listings
- **TradingPlatform**: Interface for executing trades
- **Dashboard**: User-specific data and analytics
- **AdminPanel**: System management for administrators

## Testing

Run tests using the following command:

npm test


## Deployment

1. Build the React frontend:

cd client npm run build


2. Start the server:

cd ../server npm start


For deployment to AWS or Heroku, follow their respective documentation for Node.js applications.

## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
```.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages