Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6175598
Update README.md with the project descripcion
Jrgil20 Mar 22, 2025
189066a
fix: update ethers dependency to version 5.7.2 and add @web3-react/core
Jrgil20 Mar 22, 2025
28c6273
feat: implement project creation functionality with smart contract in…
Jrgil20 Mar 22, 2025
d8dcda9
fix: update ethers dependency to version 6.11.1
Jrgil20 Mar 22, 2025
8abe76d
Merge pull request #4 from SpecLock/JRG/feature/ProjectFactory
Jrgil20 Mar 22, 2025
667d519
fix: update ethers dependency to version 6.13.5 and web3 to version 4…
Jrgil20 Mar 23, 2025
dc596b4
feat: update CreateProject component to use new factory contract ABI …
Jrgil20 Mar 23, 2025
4c91dbe
feat: add connect wallet functionality to CreateProject, Dashboard, a…
Jrgil20 Mar 23, 2025
7dbb3b4
Merge pull request #10 from SpecLock/JRG/feature/ProjectFactory
Jrgil20 Mar 23, 2025
deb0082
feat: integrate Pinata for file uploads in ProjectDetails component
Jrgil20 Mar 26, 2025
2cdd189
Merge pull request #11 from SpecLock/JRG/feature/ProjectFactory
Jrgil20 Mar 26, 2025
b572faa
delete: milstone in projecct create
Jrgil20 Mar 26, 2025
644a328
feat: enhance ProjectDetails component with wallet data integration a…
Jrgil20 Mar 26, 2025
23648e7
feat: refactor Profile component to use wallet data and simplify user…
Jrgil20 Mar 26, 2025
06bdb70
feat: update links from Etherscan to Snowtrace in Profile and Project…
Jrgil20 Mar 26, 2025
8d75905
feat: implement ContractService for project creation and management
Jrgil20 Mar 26, 2025
e2881fe
feat: update project creation to return transaction hash and address,…
Jrgil20 Mar 26, 2025
76fdf93
feat: implement project loading and display in Layout component, add …
Jrgil20 Mar 26, 2025
b353f2b
feat: add .env to .gitignore to prevent sensitive environment files f…
Jrgil20 Mar 27, 2025
81408a4
refactor contracts in profile.tsx
Jrgil20 Mar 27, 2025
9289905
feat: update Profile component to conditionally display projects base…
Jrgil20 Mar 27, 2025
1b2cc42
feat: enhance project display in Profile component with improved styl…
Jrgil20 Mar 27, 2025
3c42e85
update Abi
Jrgil20 Mar 27, 2025
3331770
update project detail to real data
Jrgil20 Mar 27, 2025
b657dea
Merge pull request #12 from SpecLock/ReInit
Jrgil20 Mar 27, 2025
23d39eb
feat: add milestone functionality with modal for project details
Jrgil20 Mar 27, 2025
737536e
fix: update label from 'Amount (ETH)' to 'Amount (avax)' in ProjectDe…
Jrgil20 Mar 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ dist-ssr
*.njsproj
*.sln
*.sw?
.env
.env.*
*.local
178 changes: 176 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,177 @@
# SpeckLock
# SpecLock - Blockchain Project Management Platform

[Edit in StackBlitz next generation editor ⚡️](https://stackblitz.com/~/github.com/Jrgil20/SpeckLock)
A decentralized project management platform built on Avalanche, designed to facilitate secure and transparent collaboration between clients and developers. The platform uses smart contracts to manage project milestones, payments, and deliverables.

## 🚀 Technology Stack

- **Frontend Framework**: React 18 with TypeScript
- **Styling**: Tailwind CSS
- **Blockchain**: Avalanche (Fuji Testnet)
- **Smart Contract Interaction**: ethers.js
- **Icons**: Lucide React
- **Development Environment**: StackBlitz WebContainer Technology

## 🏗️ Project Structure

```
src/
├── components/
│ └── Layout.tsx # Main application layout with navigation
├── contexts/
│ ├── ThemeContext.tsx # Dark/light mode management
│ └── WalletContext.tsx # Avalanche wallet integration
├── pages/
│ ├── CreateProject.tsx # Project creation form
│ ├── Dashboard.tsx # Main project overview
│ ├── Profile.tsx # User profile management
│ └── ProjectDetails.tsx # Individual project view
└── main.tsx # Application entry point
```

## 🌟 Key Features

### Wallet Integration
- Seamless connection to MetaMask
- Automatic network switching to Avalanche Fuji Testnet
- Real-time balance and network status updates

### Project Management
- Create and manage blockchain-based projects
- Define project milestones with specific deliverables
- Set milestone budgets in AVAX
- Track project progress and completion status

### Role-Based Access
- Client role for project creation and funding
- Developer role for milestone completion and proof submission
- Dynamic role switching capability

### Dark Mode Support
- Full dark mode implementation
- System preference detection
- Persistent theme selection

## 🔧 Development Environment

This project is developed using StackBlitz's WebContainer technology, providing:
- In-browser development environment
- Real-time collaboration capabilities
- Instant preview updates
- Built-in terminal and file system

### Development Commands

```bash
# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview
```

## 🌐 Avalanche Integration

The platform operates on the Avalanche Fuji Testnet with the following configurations:

- **Network Name**: Avalanche Fuji Testnet
- **Chain ID**: 0xA869
- **RPC URL**: https://api.avax-test.network/ext/bc/C/rpc
- **Block Explorer**: https://testnet.snowtrace.io/

### Smart Contract Interaction
- Milestone funding and release
- Project state management
- Automated payment distribution
- Transaction verification

## 🔐 Security Features

- Secure wallet connection handling
- Role-based access control
- Transaction signing confirmation
- Network validation checks

## 💻 User Interface

### Components
- Responsive navigation with mobile support
- Interactive project cards
- Milestone progress tracking
- Transaction history viewer
- Profile management interface

### Theme System
- Custom Tailwind configuration
- Dark mode optimization
- Consistent color palette
- Responsive design patterns

## 🚀 Getting Started

1. Clone the repository
2. Install dependencies:
```bash
npm install
```
3. Start the development server:
```bash
npm run dev
```
4. Connect your MetaMask wallet
5. Switch to Avalanche Fuji Testnet

## 📱 Responsive Design

The application is fully responsive with:
- Mobile-first approach
- Tablet optimization
- Desktop layouts
- Dynamic navigation patterns

## 🔄 State Management

- React Context API for global state
- Wallet context for blockchain interaction
- Theme context for appearance management
- Component-level state for UI interactions

## 🛠️ Development with StackBlitz

This project leverages StackBlitz's WebContainer technology for development:

1. Open the project in StackBlitz
2. Connect to your GitHub repository
3. Make changes in the browser-based IDE
4. Preview changes in real-time
5. Commit and push directly from StackBlitz

### Benefits of StackBlitz Development
- No local setup required
- Instant dependency installation
- Real-time preview
- Collaborative features
- Built-in version control

## 📦 Project Dependencies

Key dependencies include:
- `react`: ^18.3.1
- `react-router-dom`: ^6.22.3
- `ethers`: ^6.11.1
- `@avalabs/avalanchejs`: ^3.17.0
- `lucide-react`: ^0.344.0
- `tailwindcss`: ^3.4.1

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request

## 📄 License

This project is licensed under the MIT License - see the LICENSE file for details.
Loading