-
Notifications
You must be signed in to change notification settings - Fork 0
Add comprehensive README.md documentation with archive notice and deployment guide #7
Changes from all commits
9f23bff
b86b5a7
b1765bf
b9b9bfa
17d5e48
cdd0f1a
7a687f5
a1db3f4
3810c4e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,325 @@ | ||||||
| # Compass NGO Management System | ||||||
|
|
||||||
| [](https://github.com/Merge-Labs/Compass/releases) | ||||||
| [](https://github.com/Merge-Labs/Compass/commits) | ||||||
| [](https://github.com/Merge-Labs/Compass/issues) | ||||||
| [](https://github.com/Merge-Labs/Compass/pulls) | ||||||
|  | ||||||
|
|
||||||
| > **Note:** This project is archived. Compass v2 is currently being built by the core team in a private repository. If you are interested in contributing or learning more about Compass v2, please contact [wahome@nisria.co](mailto:wahome@nisria.co). | ||||||
|
|
||||||
| **Live Demo:** | ||||||
| - Frontend: [dira.manassehgitau.com](https://dira.manassehgitau.com) | ||||||
| - Backend API: [api-compass.manassehgitau.com/swagger](https://api-compass.manassehgitau.com/swagger) | ||||||
|
|
||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add the URL to view the site, which is dira.manassehgitau.com for frontend and https://api-compass.manassehgitau.com/swagger for the backend.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added live demo URLs for both frontend (dira.manassehgitau.com) and backend API (api-compass.manassehgitau.com/swagger) in the header section. (cdd0f1a) |
||||||
| **Compass** is a comprehensive NGO Management System designed to streamline operations for non-profit organizations. Built with Django REST Framework for the backend and React with Tailwind CSS for the frontend, Compass provides role-based access control, grant management, document handling, and analytics for efficient NGO operations. | ||||||
|
|
||||||
| The system supports multiple user roles including Super Admins, Admins, Management Leads, and Grant Officers, each with tailored dashboards and permissions to manage grants, documents, divisions, programs, and organizational workflows. | ||||||
|
|
||||||
| # Quick Start Demo | ||||||
|
|
||||||
| Compass provides an intuitive interface for managing your NGO's operations: | ||||||
|
|
||||||
| - **Role-Based Dashboards**: Customized views for Super Admins, Admins, Management Leads, and Grant Officers | ||||||
| - **Grant Management**: Track grant applications, deadlines, and progress | ||||||
| - **Document Management**: Upload, organize, and access important documents | ||||||
| - **Division & Program Management**: Organize your NGO's structure and programs | ||||||
| - **Analytics**: Visualize key metrics and performance indicators | ||||||
| - **Task Management**: Assign and track tasks across your organization | ||||||
| - **Notifications**: Stay updated with email notifications for important events | ||||||
|
|
||||||
| # Table of Contents | ||||||
|
|
||||||
| - [Compass NGO Management System](#compass-ngo-management-system) | ||||||
| - [Quick Start Demo](#quick-start-demo) | ||||||
| - [Table of Contents](#table-of-contents) | ||||||
| - [Installation](#installation) | ||||||
| - [Prerequisites](#prerequisites) | ||||||
| - [Backend Setup (Django)](#backend-setup-django) | ||||||
| - [Frontend Setup (React)](#frontend-setup-react) | ||||||
| - [Usage](#usage) | ||||||
| - [User Roles](#user-roles) | ||||||
| - [Key Features](#key-features) | ||||||
| - [Development](#development) | ||||||
| - [Project Structure](#project-structure) | ||||||
| - [Running in Development Mode](#running-in-development-mode) | ||||||
| - [Running Tests](#running-tests) | ||||||
| - [Deployment](#deployment) | ||||||
| - [Contribute](#contribute) | ||||||
| - [License](#license) | ||||||
|
|
||||||
| # Installation | ||||||
| [(Back to top)](#table-of-contents) | ||||||
|
|
||||||
| ## Prerequisites | ||||||
|
|
||||||
| Before you begin, ensure you have the following installed: | ||||||
|
|
||||||
| - **Python** 3.9 or higher | ||||||
| - **Node.js** 18 or higher | ||||||
| - **npm** or **yarn** | ||||||
| - **PostgreSQL** (recommended for production) or SQLite (for development) | ||||||
| - **Git** | ||||||
|
|
||||||
| ## Backend Setup (Django) | ||||||
|
|
||||||
| 1. Clone the repository: | ||||||
|
|
||||||
| ```shell | ||||||
| git clone https://github.com/Merge-Labs/Compass.git | ||||||
| cd Compass/nisria-backend | ||||||
| ``` | ||||||
|
|
||||||
| 2. Create and activate a virtual environment: | ||||||
|
|
||||||
| ```shell | ||||||
| python -m venv venv | ||||||
| source venv/bin/activate # On Windows: venv\Scripts\activate | ||||||
| ``` | ||||||
|
|
||||||
| 3. Install dependencies: | ||||||
|
|
||||||
| ```shell | ||||||
| pip install -r requirements.txt | ||||||
| ``` | ||||||
|
|
||||||
| 4. Set up environment variables: | ||||||
|
|
||||||
| ```shell | ||||||
| cp env.example .env | ||||||
| # Edit .env with your configuration (database, secret key, etc.) | ||||||
| ``` | ||||||
|
|
||||||
| 5. Run migrations: | ||||||
|
|
||||||
| ```shell | ||||||
| python manage.py migrate | ||||||
| ``` | ||||||
|
|
||||||
| 6. Create a superuser: | ||||||
|
|
||||||
| ```shell | ||||||
| python manage.py createsuperuser | ||||||
| ``` | ||||||
|
|
||||||
| 7. Start the development server: | ||||||
|
|
||||||
| ```shell | ||||||
| python manage.py runserver | ||||||
| ``` | ||||||
|
|
||||||
| The backend API will be available at `http://localhost:8000` | ||||||
|
|
||||||
| ## Frontend Setup (React) | ||||||
|
|
||||||
| 1. Navigate to the frontend directory: | ||||||
|
|
||||||
| ```shell | ||||||
| cd ../nisria-frontend | ||||||
| ``` | ||||||
|
|
||||||
| 2. Install dependencies: | ||||||
|
|
||||||
| ```shell | ||||||
| npm install | ||||||
| ``` | ||||||
|
|
||||||
| 3. Start the development server: | ||||||
|
|
||||||
| ```shell | ||||||
| npm run dev | ||||||
| ``` | ||||||
|
|
||||||
| The frontend application will be available at `http://localhost:5173` | ||||||
|
|
||||||
| # Usage | ||||||
| [(Back to top)](#table-of-contents) | ||||||
|
|
||||||
| ## User Roles | ||||||
|
|
||||||
| Compass supports four distinct user roles with different permissions: | ||||||
|
|
||||||
| | Role | Description | | ||||||
| | --------------- | -------------------------------------------------------------------------------- | | ||||||
| | **Super Admin** | Full access. Can manage users, programs, grants, documents, and verify deletions | | ||||||
| | **Admin** | Can upload, view, and manage documents and programs | | ||||||
| | **Management Lead** | Oversees Compass operations and grants | | ||||||
| | **Grant Officer** | Sources and manages grants, updates deadlines | | ||||||
|
|
||||||
| ## Key Features | ||||||
|
|
||||||
| ### Grant Management | ||||||
| - Create, update, and track grants | ||||||
| - Set deadlines and milestones | ||||||
| - Monitor grant progress and status | ||||||
| - Automated deadline reminders | ||||||
|
|
||||||
| ### Document Management | ||||||
| - Upload and organize documents | ||||||
| - Categorize documents by type (budgets, reports, proposals) | ||||||
| - Secure document storage | ||||||
| - Role-based access to documents | ||||||
|
|
||||||
| ### Division & Program Management | ||||||
| - Manage organizational divisions (e.g., Nisria, Maisha) | ||||||
| - Create and oversee programs within divisions | ||||||
| - Track program metrics and outcomes | ||||||
|
|
||||||
| ### Analytics & Reporting | ||||||
| - Visual dashboards for key metrics | ||||||
| - Grant performance analytics | ||||||
| - Program success tracking | ||||||
| - Customizable reports | ||||||
|
|
||||||
| ### Task Management | ||||||
| - Create and assign tasks to team members | ||||||
| - Set priorities and deadlines | ||||||
| - Track task completion | ||||||
| - Email notifications for task updates | ||||||
|
|
||||||
| # Development | ||||||
| [(Back to top)](#table-of-contents) | ||||||
|
|
||||||
| ## Project Structure | ||||||
|
|
||||||
| ``` | ||||||
| Compass/ | ||||||
| │ | ||||||
| ├── nisria-backend/ # Django REST Framework backend | ||||||
| │ ├── accounts/ # User management and authentication | ||||||
| │ ├── grants/ # Grant management logic | ||||||
| │ ├── documents/ # Document handling | ||||||
| │ ├── divisions/ # Divisions and programs | ||||||
| │ ├── analytics/ # Analytics and reporting | ||||||
| │ ├── task_manager/ # Task management | ||||||
| │ ├── notifications/ # Email notifications | ||||||
| │ ├── compass/ # Django project settings | ||||||
| │ └── manage.py | ||||||
| │ | ||||||
| ├── nisria-frontend/ # React + Tailwind CSS frontend | ||||||
| │ ├── src/ | ||||||
| │ │ ├── assets/ # Static assets | ||||||
| │ │ ├── components/ # Reusable UI components | ||||||
| │ │ ├── pages/ # Page components | ||||||
| │ │ ├── context/ # React Context (Auth, Theme) | ||||||
| │ │ ├── routes/ # Routing and protected routes | ||||||
| │ │ └── services/ # API service layer | ||||||
| │ ├── public/ | ||||||
| │ └── package.json | ||||||
| │ | ||||||
| └── documents/ # Project documentation | ||||||
| ``` | ||||||
|
|
||||||
| ## Running in Development Mode | ||||||
|
|
||||||
| ### Backend Development | ||||||
|
|
||||||
| ```shell | ||||||
| cd nisria-backend | ||||||
| source venv/bin/activate | ||||||
| python manage.py runserver | ||||||
| ``` | ||||||
|
|
||||||
| The Django development server automatically reloads on code changes by default. | ||||||
|
|
||||||
| ### Frontend Development | ||||||
|
|
||||||
| ```shell | ||||||
| cd nisria-frontend | ||||||
| npm run dev | ||||||
| ``` | ||||||
|
|
||||||
| The Vite development server will hot-reload on file changes. | ||||||
|
|
||||||
| ### Running with Docker (Production) | ||||||
|
|
||||||
| ```shell | ||||||
| cd nisria-backend | ||||||
| docker-compose -f docker-compose.prod.yml up --build | ||||||
| ``` | ||||||
|
|
||||||
| ## Running Tests | ||||||
|
|
||||||
| ### Backend Tests | ||||||
|
|
||||||
| The backend includes test file stubs for all major apps. To run tests: | ||||||
|
|
||||||
| ```shell | ||||||
| cd nisria-backend | ||||||
| python manage.py test | ||||||
| ``` | ||||||
|
|
||||||
| > **Note:** Test implementations need to be added. Current test files contain only the default Django test structure. | ||||||
|
|
||||||
| ### Linting | ||||||
|
|
||||||
| Frontend: | ||||||
| ```shell | ||||||
| cd nisria-frontend | ||||||
| npm run lint | ||||||
| ``` | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. add process of adding a super_admin for the first time using docker see the details in
Suggested change
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added super admin creation instructions with Docker command and created a comprehensive CONTABO-SETUP.md guide with detailed deployment steps. (cdd0f1a) |
||||||
|
|
||||||
| > **Note:** Backend linting is not yet configured in this project. Consider adding a linting tool like `flake8` or `pylint` to `requirements.txt` for code quality checks. | ||||||
|
|
||||||
| # Deployment | ||||||
| [(Back to top)](#table-of-contents) | ||||||
|
|
||||||
| For detailed deployment instructions, please refer to [README-deploy.md](./documents/README-deploy.md). | ||||||
|
|
||||||
| **Quick deployment overview:** | ||||||
|
|
||||||
| 1. Backend: Deploy using Docker with the provided `docker-compose.prod.yml` | ||||||
| 2. Frontend: Deploy to Vercel or similar platform using the `vercel.json` configuration | ||||||
| 3. Configure environment variables for production | ||||||
| 4. Set up PostgreSQL database | ||||||
| 5. Configure CORS settings for frontend-backend communication | ||||||
| 6. Set up SSL certificates for HTTPS | ||||||
|
|
||||||
| **Creating the first Super Admin with Docker:** | ||||||
|
|
||||||
| When deploying with Docker for the first time, you'll need to create a super admin user. Run the following command: | ||||||
|
|
||||||
| ```shell | ||||||
| docker-compose -f docker-compose.prod.yml exec web python manage.py createsuperuser | ||||||
| ``` | ||||||
|
|
||||||
| Follow the prompts to create the super admin account. For detailed setup instructions on production servers, see the [Contabo deployment guide](./documents/CONTABO-SETUP.md). | ||||||
|
|
||||||
| # Contribute | ||||||
| [(Back to top)](#table-of-contents) | ||||||
|
|
||||||
| We welcome contributions to Compass! However, this is a proprietary project owned by [Nisria.Inc](https://www.nisria.co/). | ||||||
|
|
||||||
| **Before contributing:** | ||||||
|
|
||||||
| 1. Contact us at [wahome@nisria.co](mailto:wahome@nisria.co) for permission and licensing information | ||||||
| 2. Review our [Security Policy](./SECURITY.md) | ||||||
| 3. Check existing issues and pull requests | ||||||
| 4. Follow the code style and conventions used in the project | ||||||
|
|
||||||
| **Development workflow:** | ||||||
|
|
||||||
| 1. Fork the repository (with permission) | ||||||
| 2. Create a feature branch (`git checkout -b feature/AmazingFeature`) | ||||||
| 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) | ||||||
| 4. Push to the branch (`git push origin feature/AmazingFeature`) | ||||||
| 5. Open a Pull Request | ||||||
|
|
||||||
| **Reporting bugs or requesting features:** | ||||||
|
|
||||||
| Please create an issue with detailed information about the bug or feature request. | ||||||
|
|
||||||
| # License | ||||||
| [(Back to top)](#table-of-contents) | ||||||
|
|
||||||
| This project is proprietary software owned by [Nisria.Inc](https://www.nisria.co/). | ||||||
|
|
||||||
| **Important:** This repository is NOT licensed under any open source license. All rights are reserved by Nisria.Inc. | ||||||
|
|
||||||
| For licensing inquiries or permission requests, please contact: [wahome@nisria.co](mailto:wahome@nisria.co) | ||||||
|
|
||||||
| See [LICENSE.md](./LICENSE.md) for full details. | ||||||
|
|
||||||
| --- | ||||||
|
|
||||||
| **Copyright © 2025 [Nisria.Inc](https://www.nisria.co/). All rights reserved.** | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kindly add commit graphs and also I need to add a statement on top that states that this project is being achieved since compass v2 is currently being built by the users on a private repo, so you can contact them if interested
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added commit activity badge and archive notice stating that Compass v2 is being built in a private repository with contact information. (cdd0f1a)