Moving away from home, especially to a new country, often means we see less of the family and friends who were there for us growing up. This is a common story, particularly when people move abroad for work or study, and it can weaken those important connections.
I know this feeling well. Even though we can use video calls to chat with family, busy lives and big time differences often make it tough to find a good time for everyone. But older relatives are always keen to hear what I'm up to. It's not that I don't care about them; life here just gets busy. Still, I want to share my news and hear theirs, because sharing our happiness with loved ones is important.
Plenty of people don't use social media like Instagram or Facebook, so I created Kinnect. It's a platform just for families to share news, thoughts, and updates. It's a private space where your posts stay within your family, free from judgment, offering love and support from your closest family and friends, no matter how far apart you are.
This repo is a RESTful API that powers Kinnect.
- Setup Instructions
- Tech Stack & Skills
- API Documentation (under progress)
- Database Schema
- Node.js ( v23.7.0 or higher )
- PostgreSQL ( v14.0 or higher )
npm install
Create two .env
files in the root directory:
For development:
// .env.development
PGDATABASE=kinnect
For testing:
// .env.test
PGDATABASE=kinnect_test
npm run setup-dbs
npm run seed-dev
Run the test suite with:
npm test
To run the server locally:
npm start
By default, the server will listen on port 9090 (http://localhost:9090
).
This project demonstrates proficiency in API development, database design, Test-Driven Development, MVC architecture, error handling, and CI/CD implementation.
- Node.js/Express.js: RESTful API framework
- PostgreSQL: Relational database implementation
- Jest/Supertest: Automated testing suite
- dotenv: Environment configuration
- Nodemon: Development server
- Husky: Git hooks integration
- FakerJs: Used for generate test and dev dataset
- Test-Driven Development: Writing tests before implementing functionality. Tests cover:
- API endpoints
- Edge cases
- Error handling
- Data validation
- Database schema verification
- MVC Architecture: Clear separation of models, views, and controllers
- RESTful Design: Following REST principles for API endpoints
- Incremental Development: Building features incrementally with git version control
Once the server is running, you can access the API documentation at the /api
endpoint, which provides details about all available endpoints, accepted queries, and example responses.