Kangalos Backend is the server-side application for the Kangalos Final Project Management System. This system is designed to streamline the management of student final-year projects within educational institutions, facilitating processes from proposal submission to evaluation and archiving.
- User Roles Management: Supports multiple user roles including Admin, Student, Supervisor, and Panelist.
- Project Lifecycle Management: Handles project proposals, approvals, progress tracking, and final submissions.
- Evaluation System: Enables supervisors and panelists to assess and grade student projects.
- Secure Authentication: Implements JWT-based authentication for secure access control.
- Database Integration: Utilizes PostgreSQL for robust data storage and management.
- Backend Framework: Node.js with Express.js
- Database: PostgreSQL
- ORM: Prisma
- Authentication: JSON Web Tokens (JWT)
- Environment Management: dotenv
kangalos-backend/
├── prisma/ # Prisma schema and migrations
├── src/
│ ├── controllers/ # Route handlers
│ ├── middleware/ # Custom middleware
│ ├── prisma/ # Prisma models
│ ├── routes/ # API route definitions
│ └── utils/ # Utility functions
├── .env # Environment variables
├── package.json # Project metadata and scripts
└── README.md # Project documentation
-
Clone the Repository
git clone https://github.com/binaryhubrw/Kangalos-Backend.git cd Kangalos-Backend -
Install Dependencies
Ensure you have Node.js and npm installed.
npm install
-
Configure Environment Variables
Create a
.envfile in the root directory and add the following variables:DATABASE_URL=postgresql://<username>:<password>@<host>:<port>/<database>?schema=public JWT_SECRET=your_jwt_secret
Replace
<username>,<password>,<host>,<port>, and<database>with your PostgreSQL credentials. -
Set Up the Database
Generate Prisma client and apply migrations:
npx prisma generate npx prisma migrate dev --name init
-
Start the Server
npm run dev
The server should now be running at
http://localhost:3000.
The API follows RESTful conventions. Below are some of the primary endpoints:
POST /api/auth/register- Register a new userPOST /api/auth/login- Authenticate a user and return a JWTGET /api/projects- Retrieve all projectsPOST /api/projects- Create a new projectPUT /api/projects/:id- Update project detailsDELETE /api/projects/:id- Delete a project
Note: For a comprehensive list of endpoints and their specifications, refer to the API documentation.
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.
For questions or support, please contact binaryhubrw.