README - IEEE-Team-3/map GitHub Wiki

TeamApp 🚀

TeamApp is a powerful team management platform built with the MERN stack (MongoDB, Express.js, React-Vite, Node.js) using TypeScript and containerized with Docker. It allows any user to create and manage their own teams with deep customization, role-based access, nested team hierarchies, chat, task management, points system, and more.

Originally inspired by IEEE’s team workflows — but designed for all teams.


🌟 Key Highlights

  • User-owned Teams — Every user can create, manage, and customize their own teams.
  • Nested Teams — Teams can contain sub-teams in a hierarchical structure.
  • Fully Customizable Roles — Define permissions, inheritance, and visibility.
  • Real-time Chat & Announcements — Team-based channels, DMs, and notifications.
  • Tasks & Points System — Assign tasks, give points/bonuses, and track progress.
  • Dynamic Leaderboards — Multiple boards based on point types or filters.
  • Task Board (Kanban) — Visual task tracking with column permissions.
  • Admin & Analytics — Super-admin tools, global settings, and activity logs.
  • Search & Filters — Search tasks, users, teams, and filter smartly.
  • Future Integrations — Discord, Google Calendar, Webhooks, and more.

🧱 Tech Stack

  • Frontend: React + Vite + TypeScript
  • Backend: Express.js + Node.js + MongoDB + TypeScript
  • Containerization: Docker & Docker Compose

🗂️ Structure

This project is documented and organized in Obsidian, with detailed feature specs, timelines, architecture, and visual maps for planning and tracking development.


📦 Installation (Coming Soon)

  • Clone the repository
  • Run docker-compose up
  • Access the frontend on localhost:3000 (default)

📅 Timeline

Planned to be completed within 1 month by a team of 5 developers (1 full-stack, 2 frontend, 2 backend).


👥 Contributors

  • Project Lead / Full Stack: Mark Maher (marco5dev)
  • Frontend Devs: Dev Andrew Bekhiet, Dev Mohamed Mostafa
  • Backend Devs: Dev Omar Mohamed, Dev Youssef Ismail

📘 License

TeamApp is licensed under the Business Source License 1.1 (BUSL-1.1).

  • ✅ Free to use for personal or organizational use.
  • ❌ Modification, redistribution, or commercial usage of the code is prohibited.
  • 🔒 Only the original development team may modify the codebase.

View full license in LICENSE.

📁 Obsidian TeamApp File Structure

📁 TeamApp
├── 📄 README.md
├── 📄 Vision.md
├── 📄 Timeline.md
├── 📁 Planning
│   ├── 📄 FeaturesList.md
│   ├── 📄 RolesResponsibilities.md
│   ├── 📄 TechStack.md
│   └── 📄 AppArchitecture.md
├── 📁 TeamsSystem
│   ├── 📄 UserOwnedTeams.md
│   ├── 📄 NestedTeamsLogic.md
│   ├── 📄 TeamCreation.md
│   ├── 📄 TeamInvites.md
│   ├── 📄 TeamSettings.md
│   └── 📄 TeamTreeVisualization.md
├── 📁 RolesAndPermissions
│   ├── 📄 RoleDefinitions.md
│   ├── 📄 RolePermissionsMatrix.md
│   ├── 📄 CustomRoleCreation.md
│   └── 📄 RoleInheritance.md
├── 📁 Features
│   ├── 📁 Users
│   │   ├── 📄 UserModel.md
│   │   ├── 📄 AuthLogic.md
│   │   ├── 📄 UserProfile.md
│   │   ├── 📄 GlobalRoles.md
│   │   └── 📄 TeamOwnershipRules.md
│   ├── 📁 Chat
│   │   ├── 📄 ChatModel.md
│   │   ├── 📄 TeamChats.md
│   │   ├── 📄 DMs.md
│   │   ├── 📄 RoleBasedChannels.md
│   │   └── 📄 NotificationsSystem.md
│   ├── 📁 Announcements
│   │   ├── 📄 AnnouncementModel.md
│   │   ├── 📄 AnnouncementPermissions.md
│   │   ├── 📄 RichEditorSupport.md
│   │   └── 📄 SchedulingAndTracking.md
│   ├── 📁 Tasks
│   │   ├── 📄 TaskModel.md
│   │   ├── 📄 TaskAssignment.md
│   │   ├── 📄 SubmissionSystem.md
│   │   ├── 📄 AutoReminders.md
│   │   └── 📄 ReviewerApprovalLogic.md
│   ├── 📁 PointsSystem
│   │   ├── 📄 PointTypes.md
│   │   ├── 📄 AssigningPoints.md
│   │   ├── 📄 BonusPoints.md
│   │   ├── 📄 RoleBasedMultipliers.md
│   │   └── 📄 PointsHistory.md
│   ├── 📁 Leaderboards
│   │   ├── 📄 LeaderboardModel.md
│   │   ├── 📄 PointBasedLeaderboards.md
│   │   ├── 📄 FilteringAndSorting.md
│   │   └── 📄 HighlightingLogic.md
│   ├── 📁 TaskBoard
│   │   ├── 📄 KanbanStructure.md
│   │   ├── 📄 ColumnPermissions.md
│   │   └── 📄 VisualBoardUX.md
│   ├── 📁 AdminPanel
│   │   ├── 📄 AdminAccess.md
│   │   ├── 📄 AnalyticsAndLogs.md
│   │   ├── 📄 GlobalSettings.md
│   │   └── 📄 PermissionsManager.md
│   ├── 📁 Notifications
│   │   ├── 📄 NotificationTriggers.md
│   │   ├── 📄 DeliveryOptions.md
│   │   └── 📄 UserPreferences.md
│   ├── 📁 SearchAndFilters
│   │   ├── 📄 GlobalSearch.md
│   │   └── 📄 TaskAndUserFilters.md
│   └── 📁 Integrations (Future)
│       ├── 📄 Discord.md
│       ├── 📄 GoogleCalendar.md
│       └── 📄 Webhooks.md
├── 📁 Frontend
│   ├── 📄 PagesStructure.md
│   ├── 📄 RoutingLogic.md
│   ├── 📄 ComponentsList.md
│   ├── 📄 UIStateManagement.md
│   └── 📄 ThemeAndUX.md
├── 📁 Backend
│   ├── 📄 MongoSchemas.md
│   ├── 📄 APIEndpoints.md
│   ├── 📄 MiddlewareLogic.md
│   ├── 📄 AccessControl.md
│   └── 📄 DockerIntegration.md
├── 📁 DockerDeployment
│   ├── 📄 Dockerfile.md
│   ├── 📄 docker-compose.yml.md
│   └── 📄 DeploymentChecklist.md
├── 📁 Testing
│   ├── 📄 UnitTests.md
│   ├── 📄 IntegrationTests.md
│   └── 📄 ManualTestingChecklist.md
└── 📁 Canvas
    ├── 📄 AppMap.canvas
    └── 📄 Timeline.canvas