# Línguas e Culturas de Angola
Project: A full-stack web application to promote Angolan languages (Português, Kimbundu, Umbundu, Kikongo) and culture. Features include translation, an educational chatbot, user profiles, private/group messages, community feed, file uploads, and real-time notifications.
This repository includes a minimal but fully functional prototype (MVP) with:
- Backend: Node.js + Express + Sequelize (SQLite used for local ease), Socket.IO for realtime.
- Frontend: React + Vite + Tailwind CSS.
Design: Light background, colorful buttons (green, yellow, blue, red), rounded borders, clean layout inspired by Angolan motifs.
---
Features
- Translate between Portuguese and Kimbundu/Umbundu/Kikongo (rule-based dictionary + caching).
- Educational chatbot with searchable Q/A content and fallback help.
- User registration and login via email or phone (JWT).
- Community feed with posts and comments.
- File upload endpoints and local storage for media/documents.
- Real-time messaging primitives with Socket.IO (basic events).
- Mobile-friendly UI built with Tailwind.
Prerequisites
- Node.js >= 18 (recommended) and npm.
- (Optional) PostgreSQL for production; SQLite is used by default for local dev.
Installation (local)
1. Clone repository
git clone
cd
2. Install dependencies
npm run install:all
3. Backend setup (local SQLite)
- Configure env by copying backend/.env.example to backend/.env and adjust values if needed.
- Run migrations (Sequelize sync is used):
npm --workspace=backend run migrate
- Seed initial data:
npm --workspace=backend run seed
4. Start development servers
- Start both frontend and backend concurrently:
npm run dev
- Alternatively run separately:
npm --workspace=backend run dev
npm --workspace=frontend run dev
5. Open frontend
- Visit
localhost
Environment variables
- Backend expects (see backend/.env.example):
- DATABASE_URL (default: sqlite:./database.sqlite)
- JWT_SECRET
- PORT (default: 4000)
- FILE_STORAGE_PATH …