Skip to content

jcsj89/api-santana

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo Logo Logo Logo

API SANTANA

A real project with knowledge objective!
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

This project consists of an REST API that uses JSON Web Tokens to authenticate users and uses the MVC pattern in its structure, but with a small modification, we just added a service layer where the business logic is, we treated each service separately, making it easier to maintain the code and understand it.

MVC Pattern

Folder Structure

The folder structure was designed to leave each module isolated to facilitate maintenance and future scalability of the application, however within each module contains the CONTROLLER, DATA MODEL, ROUTES AND SERVICES.

Exemple user folder:

  • user
    • controller
      • UserController.ts
    • model
      • UserModel.ts
    • routes
      • user.routes.ts
    • services
      • CreateUserService.ts
      • DeleteUserService.ts
      • ListUserService.ts
      • UpdateUserService.ts

Product Name Screen Shot

(back to top)


Built With

Some technologies we used to build the project.

(back to top)


Node

This project was coded in Node JS, which is a server-side JavaScript execution environment, not depending on the browser as we normally use JavaScript for the front-end, here we can create servers for static and dynamic websites, APIs and microservices based systems.

Express

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. With it we have the creation of routes, middleware, request handling, responses and errors in a consistent and simple way. The learning curve is not very big and Express is one of the most consolidated frameworks for Node JS.

TypeScript

TypeScript is an open source programming language developed by Microsoft. It is a strict syntactic superset of JavaScript and adds optional static typing to the language and features that are not natively present in the language. Types provide a way to describe the form of an object, providing better documentation and allowing TypeScript to validate that your code is working correctly.

Knex

Knex is a query-builder built for Node.js that interacts with relational databases. Knex is able to easily access and interact with the relational database of your application. Unlike Sequelize, which is an ORM, Knex is just a query-builder.

Postgres

PostgreSQL is a related database manager that greatly optimizes the work of anyone who needs to administer information at these levels. The tool is easy to install and practical to use, providing a number of advantages, especially with the use of extensions.


Roadmap

  • Authentication
  • Authorization
  • User Service - CRUD
  • Product Service - CRUD
  • Email Service
  • Multi-language Support
    • English
    • Spanish

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch - (git checkout -b feature/AmazingFeature)
  3. Commit your Changes - (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch - (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Jose Carlos Sant'Anna - Twitter @Ze_Ca_

Linkedin - https://www.linkedin.com/in/josecarlossantanna/

Email - [email protected]

Project Link: https://github.com/jcsj89/api-santana

(back to top)

About

API for web site santanaquimica

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published