E-Balwait is a web-based evaluation tool intended for students enrolled in the System Integration and Architecture 2 course. It allows group members to assess each other's performance and contribution to their project in a structured and fair manner.
- User Authentication & Authorization: Secure login system with role-based access
- Multi-Role Support: Team Manager, Lead Programmer, API Tester, Documentation Specialist, API Programmer
- Interactive Evaluation Forms: Comprehensive rating questionnaires with criteria-based scoring
- Real-time Dashboard: Home page with pending evaluations and evaluation summaries
- Results & Analytics: Detailed evaluation results with data visualization
- Dark/Light Mode: Modern UI with theme toggle functionality
- Mobile Responsive: Optimized for desktop and mobile devices
- Account Management: User settings and profile management
- Framework: React 19 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS 4.x
- Routing: React Router DOM
- HTTP Client: Axios
- Runtime: Node.js with Express
- Database: Firebase Firestore
- Authentication: JWT with bcrypt password hashing
- CORS: Enabled for cross-origin requests
ebalwait/
├── evaluator/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Application pages/routes
│ │ ├── context/ # React context providers
│ │ └── types/ # TypeScript type definitions
│ └── public/ # Static assets
├── server/ # Node.js backend API
│ ├── datasets/ # JSON data files (roles, criteria)
│ ├── types/ # Backend type definitions
│ └── utils/ # Utility functions
└── README.md # Project documentation
- Node.js (v18 or higher)
- npm or yarn
- Firebase project setup
-
Clone the repository
git clone https://github.com/codemeron1/ebalwait.git cd ebalwait -
Setup Backend
cd server npm install -
Configure Firebase
- Add your Firebase configuration to
fbKey.json - Update Firebase settings in
firebase.js
- Add your Firebase configuration to
-
Setup Frontend
cd ../evaluator npm install
-
Start the Backend Server
cd server npm startThe API server will run on
http://localhost:3000(or configured port) -
Start the Frontend Development Server
cd evaluator npm run devThe React app will run on
http://localhost:5173
Create a .env file in the server directory:
PORT=3000
JWT_SECRET=your_jwt_secret_key
FIREBASE_PROJECT_ID=your_firebase_project_id- Create a Firebase project
- Enable Firestore database
- Generate service account key and save as
server/fbKey.json - Update Firebase configuration in
server/firebase.js
- Login/Register: Access the system through the authentication pages
- Dashboard: View pending evaluations and summaries on the home page
- Evaluations: Complete rating questionnaires for team members
- Results: Review evaluation results and analytics
- Settings: Manage account settings and preferences
cd evaluator
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run preview # Preview production buildcd server
npm start # Start server
npm test # Run tests (when available)The project includes vercel.json configuration for easy deployment to Vercel.
Deploy to your preferred Node.js hosting platform (Heroku, Railway, DigitalOcean, etc.)
Current development priorities (see roadmap.md for detailed progress):
- ✅ Dark mode theme implementation
- ✅ Mobile responsiveness
- ✅ Authentication system
- ✅ Evaluation result pages
- ✅ Settings page with account management
- 🔄 Backend token persistence
- 📋 Enhanced evaluation criteria
- 📊 Advanced analytics and reporting
This project is licensed under the ISC License.
For support and questions:
- Create an issue in the GitHub repository
- Review the documentation and roadmap
- Check the development progress in
roadmap.md