Scholarhive is a platform connecting students with scholarship opportunities. It enables students to explore scholarships, submit applications, and generate professional application letters. Providers can create scholarships and manage applications efficiently.
- Features
- Requirements
- Installation and Setup
- Usage
- API Endpoints
- User Flow
- Database Design
- Contributing
- License
- Sign up and log in securely.
- Explore available scholarships.
- Submit applications, including file uploads.
- Generate application letters.
- Track application statuses.
- Sign up and log in securely.
- Create, update, and delete scholarships.
- Customize application forms.
- View and manage student applications.
- Accept or reject applications.
To run Scholarhive locally, ensure the following are installed:
- Python 3.10+
- Node.js 16+
- PostgreSQL 12+
- pipenv
- Backend: Django, Django REST Framework
- Frontend: React
- Database: PostgreSQL
git clone https://github.com/yourusername/scholarhive.git
cd scholarhive-
Navigate to the
backenddirectory:cd backend -
Create a virtual environment and install dependencies:
pipenv install pipenv shell
-
Configure environment variables:
- Create a
.envfile in thebackenddirectory with the following:SECRET_KEY=your-secret-key DEBUG=True DATABASE_NAME=your-database-name DATABASE_USER=your-username DATABASE_PASSWORD=your-db-password DATABASE_HOST=localhost DATABASE_PORT=5432
- Create a
-
Apply database migrations:
python manage.py makemigrations python manage.py migrate
-
Run the development server:
python manage.py runserver
-
Navigate to the
frontenddirectory:cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm start
-
Start the backend server (from the
backenddirectory):python manage.py runserver
-
Start the frontend server (from the
frontenddirectory):npm start
-
Open your browser and navigate to
http://localhost:3000to access the application.
Use Postman or any API client to test backend endpoints. Ensure you provide the required headers (e.g., authentication tokens) where necessary.
- POST
/api/student/register/- Register a new student. - POST
/api/provider/register/- Register a new provider. - POST
/api/login/- Log in as a student or provider.
- GET
/api/scholarships/- List all scholarships. - POST
/api/provider/scholarships/- Create a scholarship (providers only).
- POST
/api/scholarships/{id}/apply/- Submit an application (students only). - GET
/api/provider/scholarships/{id}/applications/- View applications for a scholarship (providers only).
For a full list of endpoints, refer to the API documentation in the docs folder.
-
Student Workflow:
- Sign up as a student.
- Log in to your account.
- Browse available scholarships.
- View details of a scholarship.
- Fill out and submit the application form.
- Track your application status.
-
Provider Workflow:
- Sign up as a provider.
- Log in to your account.
- Create a scholarship and define its application form.
- Manage applications by viewing, accepting, or rejecting them.
-
Students
first_name,last_name,email,education_level.
-
Providers
organization_name,email,website_url.
-
Scholarships
title,description,provider,deadline.
-
Applications
student,scholarship,status,responses.
- A Provider can create multiple Scholarships.
- A Student can apply to multiple Scholarships.
- Each Application is linked to one Student and one Scholarship.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Description of changes" - Push to the branch:
git push origin feature-name
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.