This project is a web-based information system to support software project management.
It allows employees to submit weekly timesheets and allows managers/admins to track project effort, work packages, and generate reports.
Course: COMP4911
Instructor/Sponsor: Bruce Link
- ASP.NET Core Razor Pages
- Purpose: Web UI for employees and managers
- Jakarta EE REST API (WildFly)
- EJB service layer planned for future iterations
- SQL Database
- OKD / OpenShift (container-based deployment)
├── frontend/ # .NET client application
├── backend/ # Jakarta EE backend (EJB + REST)
├── Sql/ # SQL scripts and schema files
├── tests/ # Any test code for front end or back end
├── docs/ # Any documentation for the project
└── README.md
GET /api/greet
Install the following tools:
- .NET SDK 8.0+
- Java JDK 17+
- Maven
- WildFly
- Git
Run the frontend locally:
cd frontend
dotnet watch
Frontend runs at:
Build the backend:
cd backend
mvn clean wildfly:dev
Test endpoint:
http://localhost:8080/Project/api/greet
TBD
-
Run the backend: cd backend mvn clean wildfly:dev
-
Confirm
/api/greetworks in browser or Postman -
Start Razor frontend:
cd frontend dotnet watch
- open:
Frontend should display the backend response.
- Use meaningful names and keep code readable
- Never push directly to main
- Prefer small PRs that are easy to review
- Use meaningful variable and class names
- Keep REST endpoints small business logic belong in service/EJB layer
-
main → stable release branch
-
dev → active development branch
-
Feature branches:
-
Always create a feature branch:
feature/
-
Examples:
feature/login
feature/timesheet-entry
bugfix/api-routing -
Open a Pull Request (PR) before merging
-
PR must include a clear description of changes
-
Assign all reviewers listed here
-
PR should be small and focused All pull requests must be reviewed by:
-
Kaid @kaid711
-
Nate @NateRolo
-
Lucas @zhapte
Backend (Java)
- Classes: PascalCase
- Methods: camelCase
- REST routes:
/api/resource-name
Frontend (.NET)
- Pages: PascalCase.cshtml
- PageModels: PascalCase.cshtml.cs
- Variables: camelCase
Good examples:
- Add hello world endpoint
- Setup Razor Pages frontend
- Fix API base URL config
Bad examples:
- update stuff
- changes
- fix
- frontend/ → all .NET Razor UI code
- backend/ → all Jakarta REST/EJB code
- sql/ → DB setup or deployment scripts
- tests/ → unit tests and integration tests for both frontend and backend
- docs/ → reports, diagrams, meeting notes
-
Inline code formatting should be used in documentation:
- Use
REST endpointsinstead of plain text - Use
dotnet runwhen referencing commands - Use
GET /api/hellowhen referencing routes
- Use
-
Document all important endpoints in a simple list:
POST /api/auth/loginGET /api/timesheetsPOST /api/timesheets/submit
-
Add setup instructions directly in the README whenever something changes:
- New environment variable
- New required tool
- New deployment step
Planned approach:
- Token-based login (UUID stored in database)
- Token stored in HttpOnly cookie
- Role-based access control (Admin, Employee, Manager)