Skip to content

🌿 Ecoleta is a responsive waste collection marketplace connecting people to collection points. Built with pure HTML, CSS, and JavaScript, it features a mobile-first design, point registration with IBGE API integration, and an intuitive search interface. The front-end is complete and optimized for all screen sizes.

License

Notifications You must be signed in to change notification settings

rafaumeu/ecoleta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ecoleta

License: MIT Repository Size Development Status Last Commit Pull Requests

Tech Stack Mobile Responsive Code Style Eco Impact

Deployment Status Node Version Express Version Database

Error Handling Database Status Search Feature API Integration

Visitors Contributors Code Quality

Made with Love Sustainable Project Template Engine

πŸ’‘ AboutΒ Β Β |Β Β Β  ✨ FeaturesΒ Β Β |Β Β Β  πŸš€ TechnologiesΒ Β Β |Β Β Β  🎯 Getting StartedΒ Β Β |Β Β Β  πŸ“‹ Commit StandardsΒ Β Β |Β Β Β  πŸ“ License

πŸ’‘ About the Project

Ecoleta is a waste collection marketplace that helps people find collection points efficiently. The project features a responsive web interface with search functionality and dynamic point registration, optimized for all screen sizes. With SQLite integration and robust error handling, it provides a reliable platform for connecting waste collectors with those seeking proper disposal methods.

✨ Features

  • πŸ” Search for Collection Points

    • Modal-based search interface
    • City and state filtering
    • Dynamic search with database integration
    • Real-time results display
    • Intuitive search experience
  • πŸ“ Collection Point Registration

    • Form with required field validation
    • Dynamic UF and City selection using IBGE API
    • Interactive items grid with visual feedback
    • Responsive form layout with styled field groups
    • Success and error feedback modals
  • 🎨 Interface Components

    • Responsive header with dynamic navigation
    • Mobile-first design with optimized layouts
    • Modal system for search interface
    • Custom styled buttons with hover effects
    • Optimized for screens as small as 375px
  • πŸ”§ Backend Features

    • Express.js server implementation
    • Nunjucks template engine integration
    • Modular project structure
    • RESTful API endpoints
    • Static file serving
  • πŸ“Š Database & Error Handling

    • SQLite3 integration for data persistence
    • Dynamic search functionality with database queries
    • Robust error handling for form submissions
    • Success and error feedback modals
    • Data validation and sanitization

πŸš€ Technologies Used

  • HTML5
  • CSS3 (with modular organization)
  • JavaScript (Vanilla)
  • Express.js
  • Nunjucks template engine
  • SQLite3 for data persistence
  • External APIs Integration (IBGE)
  • Git for version control
  • Mobile-First Design Approach

πŸ“‚ Project Structure

β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ assets/          # Images and SVG files
β”‚   β”œβ”€β”€ scripts/         # Client-side JavaScript
β”‚   └── styles/          # CSS files and modules
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ database/        # Database related files
β”‚   β”‚   β”œβ”€β”€ db.js       # Database configuration
β”‚   β”‚   └── database.db # SQLite database file
β”‚   β”œβ”€β”€ server.js       # Express application setup
β”‚   └── views/          # Nunjucks template files
β”œβ”€β”€ package.json        # Project dependencies
└── README.md          # Project documentation

🎯 Getting Started

  1. Clone the repository:
git clone https://github.com/rafaumeu/ecoleta.git
  1. Install dependencies:
npm install
# or
yarn install
  1. Set up the database:
# The database will be automatically created on first run
# Make sure you have write permissions in the src/database directory
  1. Start the development server:
npm start
# or
yarn start
  1. Open http://localhost:3000 in your browser

πŸ”§ Database Configuration

The project uses SQLite3 for data persistence. The database file is automatically created in the src/database directory when the application first runs. Make sure you have appropriate write permissions in this directory.

Database Schema

The database includes tables for:

  • Collection points (storing location and contact information)
  • Items for collection (categories of recyclable items)
  • Point-item relationships (linking points to their accepted items)

πŸ“‹ Commit Standards

We follow the Conventional Commits specification for our commit messages:

πŸ“ Format

<type>(<scope>): <description>

[optional body]

[optional footer(s)]

🏷️ Types

  • feat: ✨ A new feature
  • fix: πŸ› A bug fix
  • docs: πŸ“š Documentation changes
  • style: πŸ’Ž Changes that do not affect the code's meaning
  • refactor: πŸ“¦ Code changes that neither fix a bug nor add a feature
  • perf: ⚑ Performance improvements
  • test: πŸ” Adding or fixing tests
  • chore: πŸ› οΈ Changes to build process or auxiliary tools

πŸ’‘ Examples

feat(form): ✨ add required field validation
fix(modal): πŸ› correct modal closing animation
docs(readme): πŸ“š update project setup instructions
style(css): πŸ’Ž improve button hover effects
refactor(js): πŸ“¦ reorganize create-point.js functions

πŸ”„ Pull Request Process

  1. πŸ“ Ensure your commits follow the standards above
  2. πŸ“š Update the README.md with details of changes if needed
  3. πŸ”— Reference any relevant issues in your commit messages and PR description
  4. πŸ‘€ Your PR will be reviewed by at least one maintainer

🌿 Branch Naming

feature/description-here
bugfix/description-here
hotfix/description-here

🎨 Layout

You can view the project layout through this link. You need a Figma account to access it.

πŸ‘₯ Development Team

  • Rafael Dias Zendron - Lead Developer - GitHub

πŸ“¬ Contact

Rafael Dias Zendron - rafael.zendron22@gmail.com

πŸ“ License

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

πŸ™ Acknowledgments

  • IBGE for providing the API for location data
  • SQLite team for the robust database engine
  • Nunjucks team for the powerful templating engine
  • SVG icons for waste categories
  • Inspiration from modern waste management solutions

Built with πŸ’š by Rafael Zendron

LinkedIn GitHub Portfolio

About

🌿 Ecoleta is a responsive waste collection marketplace connecting people to collection points. Built with pure HTML, CSS, and JavaScript, it features a mobile-first design, point registration with IBGE API integration, and an intuitive search interface. The front-end is complete and optimized for all screen sizes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published