- Introduction
- Features
- Technologies Used
- Project Structure
- Installation and Setup
- Backend API Endpoints
- Frontend Overview
- Testing
- Contributing
- License
Techy Software is a full-stack application built with Node.js, Express.js, MongoDB on the backend, and React.js with React Bootstrap on the frontend. This application is designed to empower businesses with innovative software solutions, providing services, products, and more.
- User Authentication: Users can sign up, log in, and log out securely.
- Product Management: Users can view a list of products offered.
- Feedback System: Users can submit feedback, which is stored and managed in the backend.
- Responsive Design: The application is fully responsive and works across all devices.
- Social Media Links: Users can follow the company on various social media platforms.
- Node.js
- Express.js
- MongoDB
- Mongoose
- React.js
- React Bootstrap
- React Router
- JWT for authentication
- bcrypt for hashing passwords
- jsonwebtoken for managing authentication tokens
- axios for API requests
- dotenv for environment variables
/backend
├── controllers
├── models
├── routes
├── server.js
└── config
/frontend
├── src
│ ├── components
│ ├── assets
│ ├── pages
│ ├── App.js
│ └── index.js
├── public
└── package.json
- Node.js installed
- MongoDB installed and running
-
Navigate to the
backend
directory:cd backend
-
Install dependencies:
npm install
-
Create a
.env
file and configure your environment variables:PORT=5000 MONGO_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret
-
Start the backend server:
npm start
-
Navigate to the
frontend
directory:cd frontend
-
Install dependencies:
npm install
-
Start the frontend development server:
npm start
- POST
/api/auth/signup
: Register a new user. - POST
/api/auth/login
: Login a user and receive a JWT token.
- GET
/api/products
: Retrieve a list of products. - POST
/api/products
: Add a new product (requires authentication). - GET
/api/products/:id
: Retrieve a product by ID. - DELETE
/api/products/:id
: Delete a product by ID (requires authentication).
- POST
/api/feedback
: Submit feedback. - GET
/api/feedback
: Retrieve all feedback. - GET
/api/feedback/:id
: Retrieve feedback by ID. - DELETE
/api/feedback/:id
: Delete feedback by ID.
- GET
/api/users/me
: Retrieve the logged-in user's profile (requires authentication).
All APIs are working and have been tested thoroughly.
- The frontend is built using React.js with React Bootstrap for UI components.
- React Router is used for client-side routing.
- Axios is used for making API requests to the backend.
- JWT Authentication: Upon login, the JWT token is stored in
localStorage
and used for accessing protected routes and APIs.
- The navigation bar is responsive and provides links to different sections of the home page, such as "About Us," "Services," "Products," "Team," "Feedback," and "Contact."
- Hero Section: A welcoming banner with a brief description of the company's mission.
- Service, Contact, and About Cards: Quick links to learn more about services, contact, and the company's background.
- Products Section: Displays the products offered.
- Team Section: Showcases the team members.
- Feedback Form: A form for users to submit feedback, which is stored in the backend.
- Social Media Links: Links to the company's social media profiles.
- All API endpoints have been tested using Postman and work as expected.
- The frontend has been tested manually across different browsers and devices to ensure responsiveness and functionality.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Make your changes.
- Commit your changes (
git commit -m 'Add feature'
). - Push to the branch (
git push origin feature-name
). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE
file for details.