The Backend-app is a fork of the GoodRequest internship_backend repository, serving as a foundation for an internship project focused on backend development.
This application is designed to provide a robust backend infrastructure, utilizing TypeScript and Node.js to deliver scalable and maintainable server-side solutions.
After forking the repository, the following significant updates and contributions were made to enhance the backend project's functionality and maintainability:
- Testing Configuration:
- Added
.mocharc.jsto streamline the Mocha testing framework setup.
- Added
- Docker Integration:
- Introduced
docker-compose.ymlfor containerized development and deployment.
- Introduced
- Development Tools:
- Added
nodemon.jsonfor automatic server restarts during development.
- Added
- TypeScript Configuration:
- Enhanced
tsconfig.jsonand addedtsconfig.eslint.jsonto optimize TypeScript compilation and ESLint integration.
- Enhanced
- Created a modular directory structure under
src:- Routes: Configured endpoint routes for modularity and scalability.
- Controllers: Added controllers for processing business logic.
- Middleware: Implemented middleware for request validation and authorization.
- Developed a comprehensive test directory (
tests): Unit tests for key functions and modules. Integration tests for API endpoints using Mocha and Chai. Mocked dependencies to simulate real-world scenarios effectively.
- Enhanced package.json:
- Introduced scripts for testing, linting, and containerized operations (
npm run test,npm run lint, etc.). - Added and updated dependencies for production and development purposes.
- Introduced scripts for testing, linting, and containerized operations (
- Added centralized error-handling mechanisms.
- Integrated logging for better debugging and monitoring during development.
- Implemented Passport-based strategies for secure user authentication.
- Developed middleware for role-based access control and session management.
- Configured Sequelize ORM for database management.
- Added scripts for schema validation, migrations, and seeding.
- Created
.envfiles for environment-specific variables. - Utilized
dotenvto securely load configuration settings into the application.
- Configured GitHub Actions or similar services for automated testing and deployment workflows (if found in the commits).