Frontend: UTR Webpage Repo
- 🚀 Project Overview
- 📦 Tech Stack
- 🔧 Getting Started
- 📁 Project Structure
- 🚦 Running the Backend
- 🔌 Microservices
- ⚙️ Configuration
- 🛠️ Useful Commands
- 📡 API Endpoints
- 🐞 Troubleshooting
- 🤝 Contributing
This backend powers a web application that brings all university services under one roof. 🎓 From managing student IDs to hosting a blog and image library, our NestJS-powered backend has everything you need for an efficient, scalable solution!
🛠️ Built with microservices for modularity and scalability!
🌐 Server-side rendering for optimized performance!
🔐 OAuth authentication for secure login!
📈 Real-time notifications and user activity tracking!
- NestJS: For building the scalable and modular backend architecture
- TypeScript: Writing safer and cleaner code
- Docker: Containerizing the app for easy deployment
- MongoDB: Document based database
- OAuth: Secure authentication
To get started, ensure you have the following installed:
-
Clone the repo:
git clone https://github.com/yourusername/centralized-services-backend.git
-
Navigate to the project directory:
cd Web-Backend -
Install dependencies:
npm install
-
Create environment variables:
Copy the
.env.examplefile and rename it to.env. Make sure to add your database credentials and other necessary secrets.cp .env.example .env
`📦 project-root
┣ 📂 src # Main source code directory
┃ ┣ 📂 image-upload # Module for image upload functionality
┃ ┣ 📂 test # Unit and integration tests
┣ 📂 uploads # Directory where uploaded images are stored
┣ 📜 .dockerignore # Ignore file for Docker builds
┣ 📜 .eslintrc.js # ESLint configuration
┣ 📜 .gitignore # Git ignore file
┣ 📜 .prettierrc # Prettier configuration for code formatting
┣ 📜 README.md # Readme file for project documentation
┣ 📜 docker-compose.yml # Docker Compose configuration file
┣ 📜 dockerfile # Dockerfile for building the project image
┣ 📜 nest-cli.json # NestJS CLI configuration
┣ 📜 package.json # Project dependencies and scripts
┣ 📜 pnpm-lock.yaml # Lock file for package dependencies (PNPM)
┣ 📜 tsconfig.build.json # TypeScript configuration for build
┣ 📜 tsconfig.json # Base TypeScript configuration`
To run the backend locally:
docker-compose up --buildThis will spin up the NestJS app along with the PostgreSQL and Redis services!
npm run start:dev💡 Pro Tip: Use
npm run start:debugto enable live reloading and debugging while developing.
Our backend is composed of multiple microservices to make it modular and scalable. Here’s what we’ve got under the hood:
- Blog Microservice: For creating and managing blog posts 📖.
- Student ID Microservice: For student profile and ID management 🆔.
- Notifications Microservice: Real-time notifications 🚨.
- Image Library Microservice: Handles image uploads and storage 🖼️.
- Authentication Microservice: OAuth authentication and user sessions 🔐.
Each service runs independently but communicates through internal APIs. Neat, right? 😎
Environment variables are managed using the .env file. Here are some important variables you’ll want to configure:
PORT=3000 # Backend server port
DB_HOST=localhost # Database host
DB_PORT=5432 # Database port
REDIS_HOST=localhost # Redis host for caching
REDIS_PORT=6379 # Redis port
OAUTH_CLIENT_ID=xxxxxxxx # OAuth client ID
OAUTH_CLIENT_SECRET=xxxx # OAuth client secretnpm run start:devdocker-compose upnpm run testnpm run buildWe love contributions! 🥳 If you want to help us improve the backend, here’s how you can contribute:
- Fork the repo
- Create a feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Open a Pull Request
This project is licensed under the MIT License. Check out the LICENSE file for more details.
Have questions, suggestions, or just want to chat? Reach out to us!
- Project Manager: Daniel Téllez Girón - [danieltellezgiron81@gmail.com]
- IT Department, Universidad Tecnológica el Retoño
Happy coding! 🎉

