The Asset Finance Management Platform is a comprehensive application designed to manage user applications efficiently. It includes a robust backend, a user-friendly frontend, and implements key features like user authentication and API documentation.
- Frontend URL(aws) - https://d12gtgoagbp5j.cloudfront.net/
- Backend URL(aws) - https://py7hbtq3ha76yu77qnaapqx6qy0jntaz.lambda-url.ap-southeast-2.on.aws/health (replace health with any api endpoints)
- Swagger URL(aws) - https://py7hbtq3ha76yu77qnaapqx6qy0jntaz.lambda-url.ap-southeast-2.on.aws/api-docs
Tasks Attempted
- Frontend: Completed Entirely ✅
- Backend: Completed Entirely ✅
- DB: Completed Entirely ✅
- Additional Considerations: Completed Entirely ✅
- Deliverables: Completed Entirely ✅
- Bonus: Completed Entirely ✅
To set up the project locally, follow the instructions provided below, after the implementation details.
The backend is structured to ensure maintainability and scalability. The file structure includes:
- Routes: Handles all API endpoints.
- Controllers: Handles logic for the application.
- Middleware: Manages authentication logic.
- Models: Stores all database schemas.
- Configs: Includes database configurations.
- Test Files: Contains unit tests for the backend.
The database consists of two primary schemas:
- Users: Stores user-related information.
- Applications: Stores data about applications created by users.
- index.js serves as the entry point for the backend application.
- API documentation is implemented using Swagger, ensuring clear and concise API documentation for developers.
The frontend is built using React as a Single Page Application (SPA). The file structure includes:
- Source Folder (
src
):- Components: Contains all reusable components used throughout the application.
- Styles: Stores all CSS and styling resources.
- index.js: The entry point for the React application.
- Segregated logic into appropriate components for modularity.
- Logging and Monitoring: Added throughout the application to report specific issues or errors during the running of the application.
- Logging: Logs are visible in CloudWatch Logs, allowing for detailed tracking of application activity and errors.
- Monitoring: CloudWatch Metrics are visible for tracking Lambda performance (e.g. Invocations, Errors, and Duration).
-
Login/Register Functionality: Ensures that only authenticated users can view and manage their applications.
-
Commit Structure:
-
Commit messages follow a structured format:
- Feature: Prefix.
- Feature Name: Matches the assessment task deliverable (e.g., DB, Frontend, Bonus).
- Point Number: Refers to the specific task point.
- Comment: Describes the commit's content.
-
Example: Feature Frontend 2: users can now create, update and delete their finance applications
-
- Frontend Enhancements:
- Separate components and pages into distinct directories for improved organization.
- Version Control Improvements:
- Use Git branching to separate features into dedicated branches.
- Admin Functionality:
- Add an admin view to allow approval or rejection of applications created by users.
- Install Node.js (v16 or above).
-
Clone the repository:
git clone [email protected]:KaranSurana/Asset-Finance-Management-Platform.git
-
Navigate to the backend directory:
cd backend
-
Uncomment the code in index.js:
-
Install dependencies:
npm install
-
Start the backend server:
npm start
-
Navigate to the frontend directory:
cd frontend
-
Update the API_URL in src/config.js to http://localhost:5000
-
Install dependencies:
npm install
-
Start the frontend application:
npm start