Skip to content

ManuelElias1999/Project_Decentralized-Funding-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Project Description 

This project is a decentralized funding platform on the Ethereum blockchain. It allows users to create projects and receive funding from other users interested in supporting their initiatives.

## Implemented Functionalities

- Creation of contracts with state variables.
- `fundProject` function to allow users to send ether to a project.
- `changeProjectState` function to change the state of a project.
- Use of modifiers to restrict certain actions.
- Use of events to log important actions.
- Validations to ensure system integrity and security.
- Storage of project information in a `struct`.
- Use of an enum to define the possible states of a project.
- Storage of multiple projects using an array and a mapping.

## Implementation Details

### State Variables

- `projects`: Array to store the created projects.
- `contributions`: Mapping to store the contributions made to each project.

### Main Functions

- `createProject`: Function to initialize the data of a new project.
- `fundProject`: Function for users to send ether to a project.
- `changeProjectState`: Function to change the state of a project.

### Modifiers

- `onlyAuthor`: Modifier to restrict certain actions only to the author of the project.
- `notAuthor`: Modifier to prevent the author of the project from making contributions to their own project.

### Events

- `ProjectFunded`: Logged when a contribution is made to a project.
- `ProjectStateChanged`: Logged when the state of a project is changed.

## Development Environment Requirements

- Solidity >=0.7.0 <0.9.0
- Truffle (optional for testing and development)

## Usage Guide

1. **Create a Project**: Use the `createProject` function to initialize a new project with the required information.
2. **Fund a Project**: Users can send ether to the project using the `fundProject` function.
3. **Change Project State**: The project author can change the state using the `changeProjectState` function.

## Contributions

Contributions are welcome. If you want to contribute to this project, follow these steps:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature/feature-name`).
3. Make your changes and commit (`git commit -am 'Add new feature'`).
4. Push the branch (`git push origin feature/feature-name`).
5. Open a Pull Request.


A brief description of what this project does and who it's for

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors