π‘ AboutΒ Β Β |Β Β Β β¨ FeaturesΒ Β Β |Β Β Β π TechnologiesΒ Β Β |Β Β Β π― Getting StartedΒ Β Β |Β Β Β π Commit StandardsΒ Β Β |Β Β Β π License
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.
-
π 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
- 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
βββ 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
- Clone the repository:
git clone https://github.com/rafaumeu/ecoleta.git- Install dependencies:
npm install
# or
yarn install- Set up the database:
# The database will be automatically created on first run
# Make sure you have write permissions in the src/database directory- Start the development server:
npm start
# or
yarn start- Open
http://localhost:3000in your browser
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.
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)
We follow the Conventional Commits specification for our commit messages:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
feat: β¨ A new featurefix: π A bug fixdocs: π Documentation changesstyle: π Changes that do not affect the code's meaningrefactor: π¦ Code changes that neither fix a bug nor add a featureperf: β‘ Performance improvementstest: π Adding or fixing testschore: π οΈ Changes to build process or auxiliary tools
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- π Ensure your commits follow the standards above
- π Update the README.md with details of changes if needed
- π Reference any relevant issues in your commit messages and PR description
- π Your PR will be reviewed by at least one maintainer
feature/description-here
bugfix/description-here
hotfix/description-hereYou can view the project layout through this link. You need a Figma account to access it.
- Rafael Dias Zendron - Lead Developer - GitHub
Rafael Dias Zendron - rafael.zendron22@gmail.com
This project is licensed under the MIT License - see the LICENSE.md file for details.
- 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
