/grant-ease

Grant-Ease is an Web app that simplifies the funding application process. Users can apply for and track funding opportunities, while fund managers can create and manage these opportunities through a dedicated dashboard. Admins have the ability to manage users and their roles, ensuring efficient and secure operation of the app.

Primary LanguageJavaScript

Grant-Ease

Grant-Ease is an Web application designed to streamline the process of applying for funding and tracking funding applications. The app provides functionality for users to apply for funding opportunities, manage their applications, and stay updated on their application status. Fund managers can create and manage funding opportunities, and admins have the tools to manage users and their roles within the application.

Features

  • Apply for Funding: Users can browse and apply for available funding opportunities.
  • Track Applications: Users can track the status of their funding applications in real-time.
  • Fund Manager Dashboard: Fund managers can create funding opportunities and use a dashboard to manage applicants and funding allocations.
  • Admin Controls: Admins can create, ban users, and change user roles to ensure proper management and security within the app.

codecov

Code Coverage Graph

Screenshots

  1. Sign-In

    Sign-In
  2. Home Screen and Application Tracking

    Application Tracking Home Screen
  3. Fund Manager Dashboard and Manage Applications

    Fund Manager Dashboard Manage Applications
  4. Manage Users and Role Change

    Manage Users Role Change

Getting Started

Prerequisites

Make sure you have the following software installed on your machine:

Installation

  1. Clone the repository.

    git clone https://github.com/TheNumbered/grant-ease.git
  2. Navigate to the project directory.

    cd grant-ease
  3. Install the global dependencies.

    npm run install-global-dep
  4. Install the dependencies for each module.

    pnpm  install

Configure App

To configure the app, you need to set the following environment variables:

Frontend Environment Variables

Backend Environment Variables

  • CLERK_SECRET_KEY: The secret key for Clerk authentication. (https://clerk.com/docs/quickstarts/react)
  • MYSQL_DATABASE: The name of the MySQL database.
  • MYSQL_HOST: The host of the MySQL database.
  • MYSQL_PASSWORD: The password for the MySQL database.
  • MYSQL_PORT: The port of the MySQL database.
  • MYSQL_USER: The username for the MySQL database.

Make sure to set these environment variables before running the app.

Usage

  • To start the backend server, run the following command:

    pnpm backend
  • To start the frontend development server, run the following command:

    pnpm frontend
  • To build the frontend for production, run the following command:

    pnpm build

Testing

  • To run tests, use the following command:

    pnpm test
  • To generate test coverage report, use the following command:

    pnpm coverage

*For database migrations read the README.MD in backend/db/README.MD

Note: Some files are hidden by default. To show these files, navigate to .vscode/settings.json and comment out the file you want to show.

Acknowledgments

This project was developed as part of the Software Design course at Wits University by the following team:

Daniel Ngobe, Karabo Joshua Mofamere, Kharendwe Negota, Theophilus Kgopa, Sisekelo Ngcobo, Aphile Bulube