Need advice about which tool to choose?Ask the StackShare community!
Situation: I need to make a website for my Final Year Project. It's the website for brain analysis. The website features include chat, blogs, posts, users, payment methods. One of the main features includes the use of AI, which I know only in Python.
Decisions and Confusions: I decided to make two backends and one front-end. One backend will be using Django with GraphQL/RestAPI that will be running my AI models. The other backend is for the website. It will add users, chat, post, etc. I'm thinking of using TypeScript, Prisma, ExpressJS, GraphQL, MongoDB/PostgreSQL.
Please guide me to the latest and stable tech stack I can use. Because one of the requirements of our Final Year Project is to use the latest tech stacks. 1st Backend advice? (This will be used to run AI models) 2nd Backend advice? Frontend to 2nd Backend advice?
Thank you.
Hey there 👋,
Daniel from the Prisma team here.
I think your choice of a stack would work well for your final year project.
Some recommendations: - Use PostgreSQL if you need a stable stack. Prisma support for MongoDB is currently in Preview and therefore isn't stable. Moreover, PostgreSQL being a relational database enforces a schema more strictly than MongoDB which is useful given that your data model involves multiple relations. - If your Django backend exposes a REST API, you can also expose it over the GraphQL API by proxying requests from the GraphQL API to the REST API. That way, you have a unified API for all operations. This is typically known as wrapping. - Regarding the GraphQL part, I would consider looking at Nexus and nexus-prisma.
For inspiration, check out the Prisma Examples repository which contains many ready-to-run examples.
Here's another fully-fledged example using Prisma, Fastify, GraphQL, and PostgreSQL: https://github.com/2color/fastify-graphql-nexus-prisma
Hi. Maybe you can try use FastAPI instead Django https://fastapi.tiangolo.com It could be faster. The FastAPI documentation is so useful and elegant.
Also you can try split a little more the backend and use an "microservice" architecture. Using Kubernetes to deploy your services.
Pros of Android SDK
- Android development288
- Necessary for android155
- Android studio128
- Mobile framework86
- Backed by google82
- Platform-tools27
- Eclipse + adt plugin21
- Powerful, simple, one stop environment5
- Free3
- Больно3
Pros of Django
- Rapid development664
- Open source483
- Great community419
- Easy to learn375
- Mvc274
- Beautiful code228
- Elegant219
- Free204
- Great packages200
- Great libraries188
- Restful76
- Powerful75
- Comes with auth and crud admin panel75
- Great documentation71
- Great for web68
- Python55
- Great orm41
- Great for api39
- All included30
- Fast26
- Web Apps24
- Clean22
- Easy setup21
- Used by top startups20
- Sexy19
- ORM16
- Convention over configuration14
- The Django community13
- Allows for very rapid development with great libraries13
- Great MVC and templating engine10
- King of backend world10
- Full stack8
- Batteries included7
- Its elegant and practical7
- Very quick to get something up and running6
- Cross-Platform6
- Have not found anything that it can't do6
- Fast prototyping6
- Mvt6
- Zero code burden to change databases5
- Easy to develop end to end AI Models5
- Easy Structure , useful inbuilt library5
- Easy to change database manager4
- Great peformance4
- Many libraries4
- Python community4
- Modular4
- Easy4
- Map4
- Easy to use4
- Just the right level of abstraction3
- Scaffold3
- Full-Text Search3
- Scalable1
- Node js1
- Fastapi0
- Rails0
Pros of Node.js
- Npm1.4K
- Javascript1.3K
- Great libraries1.1K
- High-performance1K
- Open source804
- Great for apis485
- Asynchronous476
- Great community422
- Great for realtime apps390
- Great for command line utilities296
- Websockets83
- Node Modules82
- Uber Simple69
- Great modularity59
- Allows us to reuse code in the frontend58
- Easy to start42
- Great for Data Streaming35
- Realtime32
- Awesome28
- Non blocking IO25
- Can be used as a proxy18
- High performance, open source, scalable17
- Non-blocking and modular16
- Easy and Fun15
- Easy and powerful14
- Same lang as AngularJS13
- Future of BackEnd13
- Fullstack12
- Fast11
- Cross platform10
- Scalability10
- Simple9
- Mean Stack8
- Easy concurrency7
- Great for webapps7
- Fast, simple code and async6
- Typescript6
- Friendly6
- React6
- Its amazingly fast and scalable5
- Scalable5
- Great speed5
- Easy to use and fast and goes well with JSONdb's5
- Control everything5
- Fast development5
- Easy to use4
- It's fast4
- Isomorphic coolness4
- One language, end-to-end3
- Scales, fast, simple, great community, npm, express3
- TypeScript Support3
- Sooper easy for the Backend connectivity3
- Not Python3
- Great community3
- Easy3
- Easy to learn3
- Less boilerplate code3
- Performant and fast prototyping3
- Blazing fast3
- Event Driven2
- Lovely2
- Npm i ape-updating2
- Creat for apis1
- Node0
Sign up to add or upvote prosMake informed product decisions
Cons of Android SDK
Cons of Django
- Underpowered templating26
- Autoreload restarts whole server22
- Underpowered ORM22
- URL dispatcher ignores HTTP method15
- Internal subcomponents coupling10
- Not nodejs8
- Configuration hell8
- Admin7
- Not as clean and nice documentation like Laravel5
- Python3
- Not typed3
- Bloated admin panel included3
- Overwhelming folder structure2
- InEffective Multithreading2
- Not type safe1
Cons of Node.js
- Bound to a single CPU46
- New framework every day45
- Lots of terrible examples on the internet39
- Asynchronous programming is the worst32
- Callback24
- Javascript19
- Dependency based on GitHub11
- Dependency hell11
- Low computational power10
- Can block whole server easily7
- Callback functions may not fire on expected sequence7
- Very very Slow7
- Breaking updates4
- Unstable4
- No standard approach3
- Unneeded over complication3
- Can't read server session1
- Bad transitive dependency management1