ShareScribe is a robust backend for a note-taking app that allows users to seamlessly create, read, update, delete, and share notes with others. It leverages modern web technologies to provide a secure, scalable, and efficient API.
- Node.js - JavaScript Runtime
- Express - Web Framework for Node.js
- PostgreSQL - Relational Database Management System
- TypeORM - ORM for TypeScript and JavaScript
- TypeScript - Typed JavaScript at Any Scale
- ✅ User Authentication - Secure user login and registration with JWT.
- ✅ CRUD Operations for Notes - Users can create, read, update, and delete notes.
- ✅ Note Sharing - Share notes with other users easily.
- ✅ Database Migrations - Seamless database migrations with TypeORM.
- ✅ API Documentation - Swagger UI Express and tsoa for API documentation.
- ✅ Containerization - Docker support for consistent development and deployment.
- ⬜ Unit Testing - Planned unit tests with Jest.
- ⬜ CI/CD - Continuous Integration and Deployment with GitHub Actions.
- ⬜ Deployment - Future deployment plans to AWS.
- Node.js v18.0.0 or higher
- PostgreSQL v15.0.0 or higher
-
Fork and Clone the Repository:
git clone https://github.com/your-repo/shareScribe.git
-
Navigate to the Root Directory and Install Dependencies:
npm install
-
Environment Configuration:
- Copy
.env.example
to.env
. - Update the
.env
file with your database credentials.
- Copy
-
Database Setup:
-
Create a PostgreSQL database with the name specified in your
.env
file. -
Generate migration files with:
npm run db:generate
-
Run the migrations:
npm run migrations:run
-
-
Start the Server:
npm run dev-run
-
Access the Swagger Documentation:
Visit http://localhost:3000/api-docs in your browser to view the API documentation.
-
Ensure Docker and Docker Compose Are Installed:
Install Docker from the official website.
-
Navigate to the Root Directory:
cd shareScribe
-
Environment Configuration:
- Copy
.env.example
to.env
. - Ensure the PostgreSQL service name in
.env
matches the service name indocker-compose.yml
.
- Copy
-
Build and Run the Services:
docker-compose up --build
-
Stop the Containers:
docker-compose down
-
Access the Swagger Documentation:
Visit http://localhost:3000/api-docs in your browser to view the API documentation.
Contributions are highly appreciated! If you encounter any bugs or have suggestions for new features, please open an issue. If you wish to contribute code, feel free to fork the repository, create a new branch, and submit a pull request. All contributions will be reviewed promptly.