Arba Minch University Research & Outreach Management System (AMU-ROMS)
Tool Selection Team - Comprehensive Guide to Web App Development Tools and Selection Criteria
Tools and Selection Criteria
1. Frontend Development Tools
-
Frameworks & Libraries:
- • React.js – Popular for SPA and component-based architecture.
- • Vue.js – Lightweight, beginner-friendly alternative to React.
- • Angular – Full-featured framework maintained by Google.
- • Svelte – Compiles to highly efficient vanilla JS, great for performance.
- • Next.js / Nuxt.js – Frameworks for SSR (React/Vue respectively).
- • Laravel-blade ✅ – simple, yet powerful templating engine that is included with Laravel.
-
Styling:
- • CSS Frameworks: Bootstrap ✅, Tailwind CSS, Bulma
- • Preprocessors: Sass / SCSS, Less
-
Build Tools:
- • Webpack – Powerful bundler with advanced configuration.
- • Vite ✅– Fast modern build tool, especially good with React/Vue.
- • Parcel – Zero-config alternative to Webpack.
- • Snowpack – ES module-based fast dev environment (less common now).
2. Backend Development Tools
-
Languages & Frameworks:
- • JavaScript (Node.js): Express.js, NestJS
- • Python: Django, Flask
- • PHP: Laravel ✅ , Symfony
- • Ruby: Ruby on Rails
- • Java: Spring Boot
-
APIs & Real-Time:
- • REST API ✅ - Standard for data exchange.
- • GraphQL – Flexible queries for complex frontends.
- • WebSockets / Socket.io – For real-time updates.
3. Database Tools
-
SQL Databases:
- • PostgreSQL
- • MySQL / MariaDB ✅
- • SQLite
-
NoSQL Databases:
- • MongoDB
- • Firebase Realtime DB / Firestore
- • Redis
-
ORM Tools:
- • Prisma (Node.js)
- • Sequelize (Node.js)
- • Eloquent (Laravel) ✅
- • SQLAlchemy (Python)
4. DevOps & Deployment
-
Version Control:
- • Git ✅ (with GitHub ✅, GitLab, Bitbucket)
-
CI/CD:
- • GitHub Actions ✅
- • GitLab CI
- • CircleCI / TravisCI
-
Containerization & Deployment:
- • Docker
- • Kubernetes
- • Vercel / Netlify
- • Heroku
- • AWS / GCP / Azure
- • Neway 🤣
5. Authentication & Authorization
- Authentication
- ⬩ Legacy authentication ✅ - using username and password
- ⬩ Firebase Authentication
- ⬩ Auth0
- ⬩ OAuth 2.0 / OpenID Connect ✅
- ⬩ Helmet.js (Express middleware)
- ⬩ CSP Headers
- ⬩ HTTPS via Let's Encrypt / Cloudflare
- Authorization
- ⬩Role-Based Access Control (RBAC)- admin,researcher... (e.g. spatie/laravel-permission)
- ⬩Attribute-Based Access Control (ABAC) - Access is granted based on attributes (user, resource, environment) (e.g. user.department == 'HR')
- ⬩Permission-Based Access Control (PBAC) - Permissions are assigned directly to users or resources
- ⬩ Hybrid approach ✅
6. Testing Tools
-
Frontend:
- • Jest
- • Cypress
- • Playwright
-
Backend:
- • Mocha / Chai (Node.js)
- • Pytest (Python)
- • PHPUnit (PHP) ✅
7. Project Management & Collaboration
- • Trello / Jira
- • Notion
- • Slack / Microsoft Teams ✅
Our criteria behind selecting the tools
-
Project Requirements:
Based on complexity and requirements of the project.
-
Team Expertise:
Teams background and familiarity with to reduce development time.
-
Performance & Scalability:
Based on how well the tool handles high traffic, real-time updates, and growing data. e.g. Our reference to choose DB tool is SMIS (which handles huge amounts students data)
-
Development Speed:
Prioritized tools with built-in features, scaffolding, and reusable components (e.g., Laravel - to accelerate development.
-
Community & Support:
Tools with active communities, regular updates, and good documentation. More support means easier problem-solving.
-
Integration Capabilities:
The tool that integrates well with other frontend and APIs. Example: react, auth, KoboToolbox
-
Security Features:
Built-in protection against common vulnerabilities (XSS, CSRF, SQLi). Support for JWT, OAuth, HTTPS is a plus.
-
Ecosystem and Extensibility:
A mature ecosystem offers more plugins and packages. Laravel (Composer)
-
Hosting & Deployment Complexity and Compatibility:
Tools that are simpler and compatible with our hosting or CI/CD pipeline
-
Testing & Debugging Support:
Tools that support testing frameworks (PHPUnit)
-
Cost & Licensing:
Open-source tools - budget-friendly
-
Future Maintenance & Upgrades:
Tools with clear roadmaps and support for upgrades.