GoalTrack is a comprehensive volunteer management and goal tracking system designed to help organizations efficiently manage volunteer activities, track progress, and analyze performance. The system features role-based access control with separate dashboards for volunteers and administrators.
- Framework: React 18 with TypeScript
- Build Tool: Vite for fast development and optimized builds
- Styling: Tailwind CSS with shadcn/ui component library
- State Management: React Context API for authentication and global state
- Routing: React Router v6 with protected routes
- Framework: NestJS 11.0.1 with TypeScript
- Database: SQLite with TypeORM for data management
- Authentication: JWT-based with bcrypt password hashing
- Architecture: Modular design with controllers, services, and DTOs
- Node.js 18+ and npm
- Git for version control
-
Clone the repository
git clone <repository-url> cd goaltrack
-
Backend Setup
cd backend npm install npm run start:dev # Server runs on http://localhost:3001
-
Frontend Setup
cd frontend npm install npm run dev # Application runs on http://localhost:8080
-
Access the Application
- Frontend: http://localhost:8080
- Backend API: http://localhost:3001
- Default admin credentials will be created on first run
goaltrack/
βββ backend/ # NestJS backend application
β βββ src/
β β βββ auth/ # Authentication module
β β βββ users/ # User management
β β βββ goals/ # Goal tracking
β β βββ analytics/ # Performance analytics
β β βββ admin/ # Admin operations
β β βββ database/ # Database entities and config
β βββ test/ # API testing files
βββ frontend/ # React frontend application
βββ src/
β βββ components/ # Reusable UI components
β βββ pages/ # Application pages/routes
β βββ services/ # API service layer
β βββ contexts/ # React context providers
β βββ types/ # TypeScript definitions
βββ public/ # Static assets
- Personal Dashboard: Overview of goals, progress, and recent activities
- Goal Management: Create, edit, and track personal goals
- Progress Tracking: Update goal progress with notes and timestamps
- Personal Analytics: Visualize performance trends and achievements
- Profile Management: Update personal information and preferences
- System Dashboard: Organization-wide metrics and insights
- Volunteer Management: Add, edit, and monitor volunteer accounts
- Goal Oversight: System-wide goal management and templates
- Advanced Analytics: Comprehensive reporting and data visualization
- System Configuration: Manage settings and user permissions
- JWT Authentication: Secure token-based authentication
- Role-Based Access Control: Separate permissions for volunteers and admins
- Password Security: bcrypt hashing for secure password storage
- Protected Routes: Frontend route protection based on authentication status
- API Security: Request validation and sanitization
- Users: Authentication and profile information
- Goals: Goal tracking with progress and metadata
- Progress History: Historical progress updates
- Goal Templates: Reusable goal templates
- Settings: System and user preferences
- Users have many Goals (one-to-many)
- Goals have many Progress History entries (one-to-many)
- Goals can be created from Templates (many-to-one)
POST /auth/login- User loginPOST /auth/register- User registrationPOST /auth/refresh- Token refreshPOST /auth/logout- User logout
GET /goals- List user goalsPOST /goals- Create new goalPUT /goals/:id- Update goalDELETE /goals/:id- Delete goalPATCH /goals/:id/progress- Update progress
GET /analytics/personal- Personal performance metricsGET /analytics/system- System-wide analytics (admin only)
cd backend
npm run test # Unit tests
npm run test:e2e # End-to-end tests
npm run test:cov # Coverage reportcd frontend
npm run test # Component tests
npm run test:coverage # Coverage reportcd backend
npm run build
npm run start:prodcd frontend
npm run build
# Deploy dist/ folder to static hosting serviceCreate .env files in both backend and frontend directories:
Backend (.env)
DATABASE_URL=./goaltrack.db
JWT_SECRET=your-secret-key
JWT_EXPIRATION=7d
PORT=3001Frontend (.env.local)
VITE_API_URL=http://localhost:3001- TypeScript strict mode enabled
- ESLint and Prettier for code formatting
- Functional components with React hooks
- RESTful API design principles
- Feature branch development
- Descriptive commit messages
- Pull request reviews
- Automated testing before merge
- Reusable component design
- TypeScript interface definitions
- Accessibility considerations
- Responsive design patterns
- Backend:
/backend/README.md- Comprehensive backend documentation - Frontend:
/frontend/README.md- Detailed frontend architecture guide
- HTTP test files available in
/backend/test/ - Postman collection can be generated from OpenAPI documentation
- Database backup and maintenance
- Dependency updates and security patches
- Performance monitoring and optimization
- User feedback collection and analysis
- Application logs available in backend/server.log and frontend/frontend.log
- Error tracking and performance metrics
- Database query optimization
- Check server logs for backend issues
- Verify API connectivity for frontend problems
- Database integrity checks for data inconsistencies
- Clear browser cache for frontend caching issues
- Fork the repository
- Create feature branch
- Follow code style guidelines
- Write tests for new features
- Submit pull request with description
- Maintain TypeScript type safety
- Write comprehensive tests
- Follow existing code patterns
- Update documentation for changes
For technical issues or questions:
- Review documentation in backend/ and frontend/ directories
- Check existing issues and solutions
- Contact me: obatulafuad@gmail.com for access issues
This project is proprietary software developed for volunteer organization management. See license terms for usage restrictions and permissions.
Version: 1.0.0
Last Updated: August 2025
Maintainers: X3 Lab Team