Management and fundraising platform for APAS - Associação Protetora dos Animais de Serrinha.
This project was developed during the undergraduate course at UNIFAN - Centro Universitário Nobre in Brazil and became the final course project (TCC). It provides a full-stack solution for an NGO to manage donations, communicate financial transparency, and engage supporters.
The application is running in production and can be accessed at:
- Frontend:
https://apas.sempreautomatize.com.br/#/ - Backend:
https://api-apas.sempreautomatize.com.br:9000
- Frontend: Angular 17 hosted on Netlify
- Backend: Node.js / Express hosted on a Linux VPS from Locaweb
- Database: MongoDB Atlas
- Authentication: JWT
- API documentation: Swagger at
/api-docs
- User and administrator registration
- Login, password recovery and password change
- Protected admin panel with route guard
- Donation registration with donor message
- Mercado Pago integration for credit card and PIX/bank transfer payments
- Donation status update after payment approval
- Instagram feed integration to display recent posts
- Reports for donations and expenses
- Profile image upload and responsive navigation
- Institutional landing page
- Donation flow with payment integration
- Donation message submission to encourage new supporters
- Common user registration and authentication
- Admin registration through the dashboard
- Administrative reports for donations and expenses
- Instagram API integration to display social feed
- Public and protected backend routes using JWT
- Frontend
- Angular 17
- Angular Material
- RxJS
- TypeScript
- Backend
- Node.js
- Express
- MongoDB / Mongoose
- Swagger
- Mercado Pago API
- Instagram Graph API
- CORS
- dotenv
GET /- backend health checkGET /instagram- fetch recent Instagram postsGET /doacoes- list all donationsGET /doacoes/feed- list completed user donationsGET /doacoes/concluidas- list all completed donationsPOST /doacoes/cadastro- create a new donation entryPOST /doacoes/mercado-pago- create a Mercado Pago payment preferencePATCH /doacoes/aprovacao- update payment approval statusPOST /login- authenticate user or adminPOST /recupera- start password recoveryGET /api-docs- Swagger API documentation
- Open the
backend/folder - Install dependencies:
npm install
- Create a
.envfile with the required environment variables - Start the server:
npm start
- Install dependencies in the main project directory:
npm install
- Start the Angular development server:
ng serve
- Open in browser:
http://localhost:4200
USERDBandPASSWORDfor MongoDB AtlasTOKENMERCADOPAGOfor Mercado Pago integrationIGTOKENfor Instagram Graph API accessBASEURLfor Mercado Pago redirect URLsKEYCERTandCERTIFICATEfor HTTPS in productionENVIROMENTto switch between production (P) and development (D)
- The backend uses JWT middleware to protect admin and expense management routes.
- Mercado Pago is used for payment preference creation and payment status tracking.
- The Instagram feed is fetched server-side so the access token is not exposed to the client.
This project is live with the frontend hosted on Netlify and the backend running on a Linux VPS from Locaweb. It delivers a complete NGO solution focused on transparency, resource capture, and digital engagement.
Plataforma de gestão, captação de recursos e transparência para a APAS - Associação Protetora dos Animais de Serrinha.
Este projeto foi desenvolvido durante o curso de graduação na UNIFAN - Centro Universitário Nobre, Brasil, e se tornou o Trabalho de Conclusão de Curso (TCC). Ele oferece uma solução full-stack para uma ONG gerenciar doações, comunicar transparência financeira e engajar apoiadores.
A aplicação está em produção e pode ser acessada em:
- Frontend:
https://apas.sempreautomatize.com.br/#/ - Backend:
https://api-apas.sempreautomatize.com.br:9000
- Frontend: Angular 17 hospedado no Netlify
- Backend: Node.js / Express em servidor VPS Linux da Locaweb
- Banco de dados: MongoDB Atlas
- Autenticação: JWT
- Documentação da API: Swagger em
/api-docs
- Cadastro de usuário comum e administrador
- Login, recuperação de senha e alteração de senha
- Painel administrativo protegido por guarda de rota
- Cadastro de doações com mensagem do doador
- Integração com Mercado Pago para pagamento via cartão e PIX/transferência
- Atualização do status da doação após aprovação do pagamento
- Integração com Instagram para exibir posts recentes
- Relatórios de doações e gastos
- Upload de imagem de perfil e navegação responsiva
- Landing page institucional
- Fluxo de doação com integração de pagamento
- Envio de mensagem junto à doação para incentivar novos doadores
- Cadastro e autenticação de usuário comum
- Cadastro de administradores pelo painel
- Relatórios administrativos de doações e gastos
- Integração com API do Instagram para exibir o feed
- Rotas públicas e protegidas no backend usando JWT
- Frontend
- Angular 17
- Angular Material
- RxJS
- TypeScript
- Backend
- Node.js
- Express
- MongoDB / Mongoose
- Swagger
- Mercado Pago API
- Instagram Graph API
- CORS
- dotenv
GET /- verifica o status do backendGET /instagram- retorna posts recentes do InstagramGET /doacoes- lista todas as doaçõesGET /doacoes/feed- lista doações concluídas de usuáriosGET /doacoes/concluidas- lista todas as doações concluídasPOST /doacoes/cadastro- registra uma nova doaçãoPOST /doacoes/mercado-pago- cria preferência de pagamento no Mercado PagoPATCH /doacoes/aprovacao- atualiza o status de pagamento da doaçãoPOST /login- autentica usuário ou administradorPOST /recupera- inicia a recuperação de senhaGET /api-docs- documentação da API via Swagger
- Acesse a pasta
backend/ - Instale dependências:
npm install
- Crie o arquivo
.envcom as variáveis de ambiente necessárias - Inicie o servidor:
npm start
- Instale dependências no diretório principal:
npm install
- Inicie o servidor Angular:
ng serve
- Acesse:
http://localhost:4200
USERDBePASSWORDpara o MongoDB AtlasTOKENMERCADOPAGOpara integração com Mercado PagoIGTOKENpara integração com InstagramBASEURLpara URLs de retorno do Mercado PagoKEYCERTeCERTIFICATEpara HTTPS em produçãoENVIROMENTpara alternar entre produção (P) e desenvolvimento (D)
- O backend utiliza middleware JWT para proteger rotas administrativas e de gestão de gastos.
- O fluxo de pagamento usa preferências do Mercado Pago e oferece suporte para aprovação de pagamento por cartão ou transferência.
- O feed do Instagram é consumido pelo backend para proteger o token de acesso.
O projeto está em produção, com frontend hospedado no Netlify e backend em servidor Linux da Locaweb. Esta solução atende a APAS com foco em transparência, captação de recursos e engajamento digital.